답변:
클래스 메소드의 경우에 사용됩니다. 자세한 내용은 이 참조 를 확인 하십시오.
편집 : Adrien에 의해 명백한 바와 같이, 그것은 협약입니다. 당신은 실제로 아무것도하지만, 사용할 수 있습니다 cls
및 self
(사용 PEP8을 ).
cls
self는 메소드가 클래스의 인스턴스와 관련되어 있음을 암시하고, 따라서 with의 멤버는 클래스의 인스턴스에 cls
의해 액세스되는 클래스 이름으로 액세스됩니다. 동일한 개념입니다. 로 static member
와 non-static members
자바는 자바 배경에서 경우.
static member
그리고 non-static members
C ++의 맥락에서 그것을 이해
이것은 매우 좋은 질문이지만 질문만큼 원하는 것은 아닙니다. 'self'와 'cls'사용 방법에는 유사하지만 동일한 위치에 차이가 있습니다.
def moon(self, moon_name):
self.MName = moon_name
#but here cls method its use is different
@classmethod
def moon(cls, moon_name):
instance = cls()
instance.MName = moon_name
이제 둘 다 moon 함수를 볼 수 있지만 하나는 클래스 내에서 사용할 수 있지만 다른 함수 이름 moon은 모든 클래스에 사용할 수 있습니다.
실용적인 프로그래밍 방식 :
서클 클래스를 디자인하는 동안 영역을 특정 서클 클래스로만 제한하지 않기 때문에 area 메소드를 self 대신 cls로 사용합니다.