>  기사  >  백엔드 개발  >  Python의 메서드에서 클래스 변수에 액세스하는 방법은 무엇입니까?

Python의 메서드에서 클래스 변수에 액세스하는 방법은 무엇입니까?

DDD
DDD원래의
2024-10-26 17:24:02933검색

How to Access Class Variables from Methods in Python?

메서드에서 클래스 변수에 액세스

Python에서 클래스로 작업할 때 메서드 내에서 클래스 변수에 액세스해야 하는 경우가 발생할 수 있습니다. 그러나 단순히 메소드 내에서 변수를 참조하면 NameError가 발생할 수 있습니다.

문제

다음 코드 조각을 고려하세요.

<code class="python">class Foo(object):
    bar = 1

    def bah(self):
        print(bar)</code>

이 코드를 실행하려고 하면 NameError: 전역 이름 'bar'가 정의되지 않았습니다. bar 변수는 클래스 변수이고, bah 메소드에서는 직접 접근할 수 없기 때문이다.

해결책

메서드 내의 클래스 변수에 접근하려면, 두 가지 옵션이 있습니다:

  • self.bar: 이는 클래스의 각 인스턴스에 특정한 인스턴스 변수를 참조합니다.
  • Foo .bar: 이는 클래스의 모든 인스턴스에서 공유되는 클래스 변수를 참조합니다.

클래스 변수를 수정하려면 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.