클래스의 정적 메서드에서 클래스 인스턴스의 속성을 접근할 수 있나요?

첫 번째 방법은 정적 메서드 내에서 클래스 인스턴스를 인자로 전달하는 것입니다. 이렇게 하면 정적 메서드에서 클래스 인스턴스를 사용할 수 있습니다. 예를 들어, 다음과 같이 코드를 작성할 수 있습니다:

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]