[python] 클래스 인스턴스 변수와 정적 변수의 차이

파이썬에서 클래스를 사용할 때, 인스턴스 변수와 정적 변수는 중요한데, 이 둘은 동작이 서로 다릅니다. 그 차이점에 대해 알아보겠습니다.

클래스 인스턴스 변수

인스턴스 변수는 클래스의 인스턴스 마다 별도로 유지됩니다. 이 변수는 해당 클래스의 인스턴스를 생성할 때마다 새로운 메모리 공간이 할당되며, 각 인스턴스는 자체적인 인스턴스 변수를 가지게 됩니다.

예를 들어, 다음은 Person 클래스의 인스턴스 변수를 올바르게 사용하는 예시입니다.

class Person:
    def __init__(self, name):
        self.name = name

person1 = Person('Alice')
person2 = Person('Bob')

print(person1.name)  # 출력: Alice
print(person2.name)  # 출력: Bob

클래스 정적 변수

정적 변수는 클래스의 모든 인스턴스에서 공유됩니다. 이 변수는 클래스 내에서 생성되며, 모든 인스턴스가 동일한 값에 접근할 수 있습니다.

아래의 예시에서는 Car 클래스의 정적 변수를 사용하는 방법을 보여줍니다.

class Car:
    wheels = 4

car1 = Car()
car2 = Car()

print(car1.wheels)  # 출력: 4
print(car2.wheels)  # 출력: 4

결론

클래스 인스턴스 변수와 정적 변수는 각각 인스턴스별로 고유한 값과 모든 인스턴스에 공유되는 값의 차이가 있습니다. 이러한 차이를 이해하고 올바르게 활용하는 것은 클래스를 효과적으로 사용하는 데 도움이 됩니다.

더 깊은 이해를 위해서는 파이썬 공식 문서나 다른 신뢰할 만한 자료를 참고하는 것이 좋습니다.

참고 자료