728x90

인스턴스 속성, 클래스 속성

인스턴스 메서드 (Instance Method)

- 인스턴스 메서드는 클래스의 인스턴스에 의해 호출되는 메서드

- 첫 번째 매개변수로 'self'를 사용하여 현재 인스턴스에 대한 참조를 전달

- 인스턴스 속성에 접근하고 수정하는데 사용됨

- 인스턴스 메서드는 'self'를 통해 인스턴스의 상태를 변경하거나 인스턴스의 속성에 접근 가능

class MyClass:
    def __init__(self):
        self.some_property = 1
        
    def instance_method(self, some_int):
        # 인스턴스 속성에 접근
        self.some_property = some_int

 

정적 메서드 (Static Method)

- 정적 메서드는 특정 클래스와 관련이 있는 동작을 수행하지만, 인스턴스나 클래스에 대한 참조를 받지 않는 메서드

- '@staticmethod' 데코레이터를 사용하여 정적 메서드임을 나타냄

- 정적 메서드는 클래스의 인스턴스 속성에 접근 가능

- 정적 메서드는 주로 클래스와 관련된 유틸리티 함수를 구현하는 데 사용

class MyClass:
    @staticmethod
    def static_method():
        # 클래스의 인스턴스 속성에 접근 불가능
        # some_property = 10 불가능
        # 클래스와 관련된 동작 수행
        pass

클래스 메서드 (Class Method)

- 클래스 메서드는 클래스 레벨에서 호출되지만, 인스턴스에 대한 참조를 받지 않고, 클래스 자체에 대한 참조를 받음

- 첫 번째 매개변수로 'cls'를 사용하여 현재 클래스에 대한 참조를 전달

- 클래스 속성에 접근하고 수정하는데 사용됨

- 클래스 메서드는 'cls'를 통해 클래스 속성을 변경하거나 접근 가능

class MyClass:
    some_class_property = 1
    
    def class_method(cls):
        # 클래스 속성에 접근
        cls.some_class_property = 10
        # 클래스 속성 변경
        cls.some_class_method()

 

 

728x90

+ Recent posts