Python/포스팅

파이썬 클래스 변수

짜집퍼박사(짜박) 2023. 12. 3. 03:31

파이썬에서 클래스 변수는 클래스 내부에서 정의되며 모든 클래스 인스턴스에 대해 동일한 값을 공유하는 변수입니다. 클래스 변수는 클래스의 모든 인스턴스 간에 공유되므로, 한 클래스에서 클래스 변수의 값을 변경하면 모든 인스턴스에 변경이 반영됩니다.

 

클래스 변수 정의

클래스 변수는 클래스 내부에서 메서드 외부에 정의됩니다. 일반적으로 클래스 변수는 해당 클래스에 속하는 모든 인스턴스가 공유해야 하는 속성이나 설정에 사용됩니다.

class MyClass:
    class_variable = 10

    def __init__(self, instance_variable):
        self.instance_variable = instance_variable

위의 예시에서 class_variable은 MyClass의 클래스 변수입니다.

 

클래스 변수에 접근

클래스 변수에 접근하려면 클래스명 또는 인스턴스를 통해 접근할 수 있습니다.

# 클래스명을 통한 접근
print(MyClass.class_variable)  # 출력: 10

# 인스턴스를 통한 접근
obj = MyClass(20)
print(obj.class_variable)      # 출력: 10

 

클래스 변수 수정

클래스 변수는 클래스명을 통해 수정할 수 있습니다. 이때, 해당 클래스의 모든 인스턴스에 변경이 반영됩니다.

MyClass.class_variable = 30

print(MyClass.class_variable)  # 출력: 30

obj = MyClass(20)
print(obj.class_variable)      # 출력: 30

 

클래스 변수 vs 인스턴스 변수

- 클래스 변수: 해당 클래스의 모든 인스턴스 간에 공유되는 변수로, 클래스명 또는 인스턴스를 통해 접근할 수 있습니다.
- 인스턴스 변수: 각 인스턴스마다 독립적인 변수로, 해당 인스턴스를 통해만 접근할 수 있습니다.

class MyClass:
    class_variable = 10

    def __init__(self, instance_variable):
        self.instance_variable = instance_variable

# 클래스 변수
print(MyClass.class_variable)  # 출력: 10

# 인스턴스 변수
obj1 = MyClass(20)
obj2 = MyClass(30)

print(obj1.instance_variable)  # 출력: 20
print(obj2.instance_variable)  # 출력: 30

 

클래스 변수 활용

클래스 변수는 여러 인스턴스 간에 공유되므로, 클래스의 상태를 표현하거나 설정을 공유하는 데 사용될 수 있습니다. 클래스 메서드와 함께 사용하여 클래스 전체에 영향을 미치는 동작을 구현하는 데 활용할 수도 있습니다.

 

With ChatGPT

'Python > 포스팅' 카테고리의 다른 글

파이썬 if __name__ == "__main__": 의 의미  (0) 2023.12.03
파이썬 모듈 생성  (0) 2023.12.03
파이썬 메서드 오버라이딩  (0) 2023.12.03
파이썬 클래스 상속  (0) 2023.12.03
파이썬 생성자  (0) 2023.12.03