Python에서 클래스로 작업할 때 메서드 내에서 클래스 변수에 액세스해야 하는 경우가 발생할 수 있습니다. 그러나 단순히 메소드 내에서 변수를 참조하면 NameError가 발생할 수 있습니다.
문제
다음 코드 조각을 고려하세요.
<code class="python">class Foo(object): bar = 1 def bah(self): print(bar)</code>
이 코드를 실행하려고 하면 NameError: 전역 이름 'bar'가 정의되지 않았습니다. bar 변수는 클래스 변수이고, bah 메소드에서는 직접 접근할 수 없기 때문이다.
해결책
메서드 내의 클래스 변수에 접근하려면, 두 가지 옵션이 있습니다:
클래스 변수를 수정하려면 Foo.bar를 사용하세요. 그렇지 않으면 self.bar를 사용하십시오.
예
올바른 접근 방식을 사용하여 코드 조각을 리팩터링:
<code class="python">class Foo(object): bar = 1 def bah(self): print(self.bar) # Access the instance variable f = Foo() f.bah() # Prints 1</code>
이 코드는 1을 인쇄합니다. 인스턴스 변수에 액세스합니다. 클래스 변수에 액세스하려면 print 문에서 self.bar를 Foo.bar로 변경하면 됩니다.
위 내용은 Python의 메서드에서 클래스 변수에 액세스하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!