클래스의 정적 메서드에서 클래스 인스턴스의 속성을 접근할 수 있나요?
첫 번째 방법은 정적 메서드 내에서 클래스 인스턴스를 인자로 전달하는 것입니다. 이렇게 하면 정적 메서드에서 클래스 인스턴스를 사용할 수 있습니다. 예를 들어, 다음과 같이 코드를 작성할 수 있습니다:
class MyClass:
def __init__(self, x):
self.x = x
@staticmethod
def static_method(instance):
# 클래스 인스턴스의 속성에 접근
print(instance.x)
my_instance = MyClass(5)
MyClass.static_method(my_instance) # 출력: 5
두 번째 방법은 정적 메서드에서 클래스 변수를 사용하는 것입니다. 클래스 변수는 클래스의 모든 인스턴스에서 공유되므로, 정적 메서드에서 클래스 변수를 사용하여 인스턴스의 속성에 접근할 수 있습니다. 예를 들어, 다음과 같이 코드를 작성할 수 있습니다:
class MyClass:
x = 0 # 클래스 변수
@staticmethod
def static_method():
# 클래스 변수에 접근
print(MyClass.x)
my_instance = MyClass()
my_instance.x = 5 # 인스턴스의 속성 변경
MyClass.static_method() # 출력: 0
이와 같이, 클래스의 정적 메서드에서는 클래스 인스턴스의 속성을 접근할 수 있습니다. 하지만 주의해야 할 점은 정적 메서드는 인스턴스 메서드가 아닌 클래스 메서드이기 때문에, 실제 인스턴스에 바로 접근하는 것보다는 인자로 전달하는 것이 좋습니다.
[#python] [#class]