그럼 왜 두가지 메소드가 존재하는거죠? 클래스 자체에서 호출이 가능하게 하기 위해서 존재하는것 같은데 두가지의 용도의 차이가 뭔
지 궁금합니다.
답변 부탁드립니다.
정적메소드는 주로 인스턴스 없이도 기능을 제공해야 하는 경우에 주로 사용되며,
클래스메소드는 자기가 어느 클래스인지 알아야되는 상황에 사용됩니다.
아래의 간단한 예제와 실행결과를 보시면 이해가 되실 것입니다.
>>> class A:
def a(*a):
return a
def b(*a):
return a
a=staticmethod(a)
b=classmethod(b)
>>> A.a()
()
>>> A.b()
(<class __main__.A at 0x016064B0>,)
감사합니다.