[python] 클래스 메서드와 인스턴스 메서드

파이썬에서 클래스 메서드와 인스턴스 메서드는 객체 지향 프로그래밍에서 중요한 역할을 합니다. 이 블로그에서는 클래스 메서드와 인스턴스 메서드의 차이점과 사용 방법에 대해 알아보겠습니다.

클래스 메서드

클래스 메서드는 @classmethod 데코레이터를 사용하여 정의됩니다. 클래스 메서드는 클래스 레벨에서 동작하며, 첫 번째 파라미터로 클래스 자신을 나타내는 cls를 가집니다. 클래스 메서드는 클래스 변수와 관련된 작업을 수행하거나 인스턴스를 생성하는 팩토리 메서드로 사용됩니다.

아래는 클래스 메서드를 사용하여 인스턴스를 생성하는 예시입니다.

class MyClass:
    @classmethod
    def create_instance(cls, value):
        return cls(value)

    def __init__(self, value):
        self.value = value

instance = MyClass.create_instance(10)
print(instance.value)  # 출력: 10

인스턴스 메서드

인스턴스 메서드는 보통 클래스 내부에서 self를 첫 번째 파라미터로 받는 메서드입니다. 인스턴스 변수에 접근하거나 수정하는 등의 인스턴스와 관련된 작업을 수행합니다.

아래는 인스턴스 메서드를 사용하여 인스턴스 변수를 수정하는 예시입니다.

class MyClass:
    def __init__(self, value):
        self.value = value

    def update_value(self, new_value):
        self.value = new_value

instance = MyClass(10)
instance.update_value(20)
print(instance.value)  # 출력: 20

결론

클래스 메서드와 인스턴스 메서드는 각각 클래스와 인스턴스 레벨에서 동작하며, 용도에 맞게 적절히 사용하면 객체 지향 프로그래밍에서 유용하게 활용할 수 있습니다. 클래스 메서드는 @classmethod 데코레이터를 사용하고, 첫 번째 파라미터로 cls를 받는 것에 주의하고, 인스턴스 메서드는 self를 첫 번째 파라미터로 받는 것에 주의하여 사용하시면 됩니다.

참고문헌: 파이썬 공식 문서 - 클래스와 인스턴스 메서드