728x90

 

class Demo:
    @classmethod
    def klassmeth(*args):
        return args

    @staticmethod
    def statmeth(*args):
        return args


print(Demo.klassmeth())
print(Demo.klassmeth('spam'))

print(Demo.statmeth())
print(Demo.statmeth('spam'))

 

@classmethod 데커레이터는 쓰임새가 많은게 확실하지만, @staticmethod 데커레이터는

사용해야 하는 이유를 잘 모르겠다.

 

클래스와 함께 작동하지 않는 함수를 정의하려면, 단지 함수를 모에 정의 하면 된다.

아마 함수가 클래스를 건드리지는 않지만

그 클래스와 밀접히 연관되어 있어 클래스 코드가 가까운 곳에 두고 싶을 수는 있을 것이다.


그런 경우에는 클래스의 바로 앞이나 뒤에서 함수를 정의하면 된다.

728x90