[python] 클래스의 네임스페이스

클래스의 네임스페이스

클래스는 객체의 속성메서드를 정의합니다. 이때, 클래스 내에서 선언된 변수는 해당 클래스의 네임스페이스에 속합니다. 네임스페이스는 변수가 유효한 범위를 의미하며, 각 클래스는 독립적인 네임스페이스를 가지고 있습니다.

인스턴스 네임스페이스

인스턴스는 해당 클래스의 인스턴스 네임스페이스에 속한 변수를 사용할 수 있습니다. 이 네임스페이스에는 해당 인스턴스에만 적용되는 변수와 메서드가 포함됩니다.

class MyClass:
    class_variable = 10

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

my_instance = MyClass(5)
print(my_instance.instance_variable)  # 5
print(my_instance.class_variable)  # 10

위의 예시에서 instance_variableMyClass인스턴스 네임스페이스에 속한 변수이며, class_variableMyClass클래스 네임스페이스에 속한 변수입니다.

클래스 네임스페이스

클래스 내에서 선언된 변수는 해당 클래스의 클래스 네임스페이스에 속하며, 모든 인스턴스에서 공유됩니다.

class MyClass:
    class_variable = 10

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

print(MyClass.class_variable)  # 10

위의 예시에서 class_variableMyClass클래스 네임스페이스에 속한 변수입니다.

전역 네임스페이스

전역 네임스페이스는 파이썬 파일이나 모듈의 최상위 네임스페이스를 가리킵니다. 전역 네임스페이스의 변수는 해당 파일이나 모듈 전체에서 사용할 수 있습니다.

global_variable = 20

class MyClass:
    class_variable = 10

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

print(global_variable)  # 20

위의 예시에서 global_variable은 해당 모듈의 전역 네임스페이스에 속하는 변수입니다.

클래스의 네임스페이스 개념을 잘 이해하면 객체지향 프로그래밍에서 변수의 유효 범위를 명확히 이해할 수 있습니다.

더 많은 정보는 파이썬 공식 문서를 참고하시기 바랍니다.