Computer >> 컴퓨터 >  >> 프로그램 작성 >> Python

Python에서 클래스 변수를 정의하는 올바른 방법은 무엇입니까?

<시간/>

클래스 변수는 __init__메서드 외부에서 선언된 변수입니다. 이는 정적 요소입니다. 즉, 클래스 인스턴스가 아니라 클래스에 속합니다. 이러한 클래스 변수는 해당 클래스의 모든 인스턴스에서 공유됩니다. 클래스 변수에 대한 예제 코드

class MyClass:
  __item1 = 123
  __item2 = "abc"
  def __init__(self):
    #pass or something else

더 많은 코드로 더 명확하게 이해할 수 있습니다 -

class MyClass:
    stat_elem = 456
    def __init__(self):
        self.object_elem = 789
c1 = MyClass()
c2 = MyClass()
# Initial values of both elements
>>> print c1.stat_elem, c1.object_elem
456 789
>>> print c2.stat_elem, c2.object_elem
456 789
# Let's try changing the static element
MyClass.static_elem = 888
>>> print c1.stat_elem, c1.object_elem
888 789
>>> print c2.stat_elem, c2.object_elem
888 789
# Now, let's try changing the object element
c1.object_elem = 777
>>> print c1.stat_elem, c1.object_elem
888 777
>>> print c2.stat_elem, c2.object_elem
888 789