[python] 클래스 멤버 변수와 인스턴스 변수

파이썬에서 클래스를 정의할 때 변수를 선언할 수 있습니다. 이때 클래스 변수와 인스턴스 변수를 구분하여 사용하는 것이 중요합니다.

클래스 멤버 변수

클래스 변수는 해당 클래스의 모든 인스턴스에서 공유됩니다. 즉, 모든 인스턴스가 동일한 값을 참조합니다. 클래스 변수는 클래스 선언 내부에서 선언되며, 인스턴스 변수 앞에 self 키워드가 붙지 않습니다.

class MyClass:
    class_var = 10

위의 예시에서 class_varMyClass의 클래스 변수로, MyClass.class_var로 접근할 수 있습니다.

인스턴스 변수

인스턴스 변수는 개별 객체 인스턴스마다 별도로 유지됩니다. 즉, 각 인스턴스가 서로 다른 값을 가질 수 있습니다. 인스턴스 변수는 메서드 내에서 self 키워드를 사용하여 선언하거나 초기화할 수 있습니다.

class MyClass:
    def __init__(self, instance_var):
        self.instance_var = instance_var

위의 예시에서 instance_varMyClass의 인스턴스 변수로, 각 인스턴스마다 고유한 값을 가질 수 있습니다.

정리하자면, 클래스 변수는 클래스 전체에서 공유되는 반면, 인스턴스 변수는 각각의 인스턴스에 속한 변수입니다.

이러한 차이를 이해하고 적절히 활용하면 객체지향 프로그래밍에서 더욱 효율적인 프로그램을 작성할 수 있습니다.

Python 공식 문서를 참고하면 더 자세한 정보를 얻을 수 있습니다.