본문 바로가기
카테고리 없음

python classmethod() 이해하기 + 예제코드

by python pro 2023. 2. 9.
반응형

Python의 classmethod() 함수는 클래스 메서드를 정의할 때 사용되는 데코레이터입니다.

클래스 메서드는 클래스 자체에 대한 정보를 처리하기 위한 메서드이며, 객체 인스턴스에 대한 정보가 아닌 클래스 정보에 대한 정보를 처리하는 경우에 사용됩니다.

 

사용방법

class MyClass:
    @classmethod
    def class_method(cls, arg1, arg2):
        # 클래스 메서드 구현
        ...

 

위의 코드에서 class_method 메서드는 MyClass 클래스의 클래스 메서드입니다. cls 매개변수는 현재 호출된 클래스를 의미하며, 클래스 메서드의 첫 번째 매개변수로 사용됩니다.

 

정상적인 코드 예시

class Rectangle:
    def __init__(self, width, height):
        self.width = width
        self.height = height

    @classmethod
    def square(cls, side_length):
        return cls(side_length, side_length)

rect = Rectangle.square(5)
print(rect.width) # 5
print(rect.height) # 5

 

잘못된 코드 예시

class Rectangle:
    def __init__(self, width, height):
        self.width = width
        self.height = height

    @classmethod
    def square(side_length): # cls가 빠져있어요!
        ....

정상적인 클래스 메서드에서는 cls 매개변수가 첫 번째 인자로 정의되어 있지만, 위와 같이 cls 매개변수가 정의되어 있지 않은 경우에는 오류가 발생합니다.

 

클래스 메서드를 사용하는 이유는 클래스에서 공통적으로 사용되는 메서드를 클래스 자체에 정의하여 객체 인스턴스를 생성할 필요 없이 바로 호출할 수 있다는 점입니다. 이러한 특징은 객체 지향 프로그래밍에서 클래스를 정의하고 관리하는 것이 쉽게 되도록 돕기 때문입니다.

요약하자면, Python classmethod() 함수는 클래스에서 공통적으로 사용되는 메서드를 클래스 자체에 정의하여 객체 인스턴스를 생성할 필요 없이 바로 호출할 수 있게 해주는 기능을 제공하는 데코레이터입니다.

 
반응형

댓글