[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_variable
은 MyClass
의 인스턴스 네임스페이스에 속한 변수이며, class_variable
은 MyClass
의 클래스 네임스페이스에 속한 변수입니다.
클래스 네임스페이스
클래스 내에서 선언된 변수는 해당 클래스의 클래스 네임스페이스에 속하며, 모든 인스턴스에서 공유됩니다.
class MyClass:
class_variable = 10
def __init__(self, x):
self.instance_variable = x
print(MyClass.class_variable) # 10
위의 예시에서 class_variable
은 MyClass
의 클래스 네임스페이스에 속한 변수입니다.
전역 네임스페이스
전역 네임스페이스는 파이썬 파일이나 모듈의 최상위 네임스페이스를 가리킵니다. 전역 네임스페이스의 변수는 해당 파일이나 모듈 전체에서 사용할 수 있습니다.
global_variable = 20
class MyClass:
class_variable = 10
def __init__(self, x):
self.instance_variable = x
print(global_variable) # 20
위의 예시에서 global_variable
은 해당 모듈의 전역 네임스페이스에 속하는 변수입니다.
클래스의 네임스페이스 개념을 잘 이해하면 객체지향 프로그래밍에서 변수의 유효 범위를 명확히 이해할 수 있습니다.
더 많은 정보는 파이썬 공식 문서를 참고하시기 바랍니다.