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 데커레이터는
사용해야 하는 이유를 잘 모르겠다.
클래스와 함께 작동하지 않는 함수를 정의하려면, 단지 함수를 모에 정의 하면 된다.
아마 함수가 클래스를 건드리지는 않지만
그 클래스와 밀접히 연관되어 있어 클래스 코드가 가까운 곳에 두고 싶을 수는 있을 것이다.
그런 경우에는 클래스의 바로 앞이나 뒤에서 함수를 정의하면 된다.