전에 사용하지 않은 Django 앱을 통합하는 동안 클래스에서 함수를 정의하는 데 사용되는 두 가지 다른 방법을 발견했습니다. 저자는 둘 다 매우 의도적으로 사용하는 것 같습니다. 첫 번째는 내가 많이 사용하는 것입니다.
class Dummy(object):
def some_function(self,*args,**kwargs):
do something here
self is the class instance
다른 하나는 내가 사용하지 않는 것입니다. 주로 사용시기와 용도를 이해하지 못하기 때문입니다.
class Dummy(object):
@classmethod
def some_function(cls,*args,**kwargs):
do something here
cls refers to what?
Python 문서에서 classmethod
데코레이터는 다음 문장으로 설명됩니다.
클래스 메서드는 인스턴스 메서드가 인스턴스를받는 것처럼 클래스를 암시 적 첫 번째 인수로받습니다.
그래서 나는 자신을 cls
참조한다고 생각 Dummy
합니다 ( class
인스턴스가 아니라). 나는 항상 이것을 할 수 있기 때문에 이것이 왜 존재하는지 정확히 이해하지 못합니다.
type(self).do_something_with_the_class
이것은 단지 명확성을위한 것일까 요, 아니면 가장 중요한 부분을 놓쳤습니까?