[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를 첫 번째 파라미터로 받는 것에 주의하여 사용하시면 됩니다.
참고문헌: 파이썬 공식 문서 - 클래스와 인스턴스 메서드