>  기사  >  백엔드 개발  >  파이썬 함수 클래스 메소드()

파이썬 함수 클래스 메소드()

巴扎黑
巴扎黑원래의
2017-08-21 13:43:032183검색

classmethod(function)

중국어 설명:

classmethod는 클래스 메서드를 클래스 메서드로 지정하는 데 사용됩니다. 이 매개변수 없이 지정된 클래스의 메서드는 인스턴스 메서드입니다.

class C:
    @classmethod
    def f(cls, arg1, arg2, ...): ...

클래스 메서드 직접 클래스 호출(C.f()) 또는 인스턴스 호출(C().f())을 만들 수 있습니다.

Version: python2.2의 새로운 기능, python2.4에 새로운 기능이 추가되었습니다. Python3에서는 계속 사용할 수 있습니다.

한국어 설명

함수에 대한 클래스 메서드를 반환합니다.

인스턴스 메서드가 인스턴스를 받는 것처럼 클래스 메서드는 클래스를 암시적 첫 번째 인수로 받습니다. 클래스 메서드를 선언하려면 다음 관용어를 사용하세요.

class C:
    @classmethod
    def f(cls, arg1, arg2, ...): ...

@classmethod 형식은 함수 데코레이터입니다. 자세한 내용은 함수 정의의 함수 정의에 대한 설명을 참조하세요.

클래스(예: C.f()) 또는 인스턴스(예: C()에서 호출할 수 있습니다. f()) 클래스를 제외한 인스턴스는 무시됩니다. 파생 클래스에 대해 클래스 메서드가 호출되면 파생 클래스 개체가 암시된 첫 번째 인수로 전달됩니다.

클래스 메서드는 C++ 또는 Java 정적 메서드와 다릅니다. 원하는 경우 이 섹션의 staticmethod()를 참조하세요.

클래스 메서드에 대한 자세한 내용은 표준 유형 계층 구조의 표준 유형 계층 구조에 대한 문서를 참조하세요.

버전 2.2의 새로운 기능

버전 변경 2.4: 함수 데코레이터 구문이 추가되었습니다.

코드 예:

>>> class C:
...     @classmethod
...     def f(self):
...             print "This is a class method"
...
>>> C.f()
This is a class method
>>> c = C()
>>> c.f()
This is a class method
>>> class D:
...     def f(self):
...             print " This is not a class method "
...
>>> D.f()
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: unbound method f() must be called with D instance as first argument (got nothing instead)
>>> d = D()
>>> d.f()
This is not a class method

위 내용은 파이썬 함수 클래스 메소드()의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.