클래스의 메서드 사이에 변수를 어떻게 전달해야합니까? 이와 같이, 인수로 :
class Yadayada:
def foo(self):
for i in somelist:
pass_var = i * blah blah blah
output = self.bar(pass_var)
def bar(self,pass_var):
a= pass_var * whatever
return a
또는 이와 같이 변수에 저장 하시겠습니까?
class Yadayada:
def foo(self):
for i in somelist:
self.pass_var = i * blah blah blah
output = self.bar()
def bar(self):
a= self.pass_var * whatever
return a
가장 좋은 방법은 무엇이며 그 이유는 무엇입니까? 아니면 중요합니까? 참고 : 나머지 코드에서는 pass_var 변수를 사용하지 않습니다.
이것은 디자인 결정입니다. 매개 변수로 전달하면 해당 함수의 수명 동안 전달 된 값이 유지됩니다. 객체의 속성으로 저장하면 인스턴스의 수명 동안 보관됩니다. 이는 훨씬 더 길어질 것입니다.
스스로에게 물어봐야 할 질문 은이 값이 인스턴스를 설명하는 데 도움이됩니까? 아니면 인스턴스가 소유 한 것입니까? -이 중 하나라도 사실이면 저장하십시오.
값을 계산하는 데 사용되는 것 (그렇게 들리는 것)이라면 저장할 이유가 없습니다. 저장하면 나중에 사용하고 싶다는 의미입니다.
확실하지 않은 경우 값을 함수에 전달하는쪽에 오류가 있습니다. 이렇게하면 오류 (값이 클래스에 설정되지 않은 경우 함수 호출) 가능성이 줄어들고 사용되는 메모리 양이 줄어 듭니다.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다