美文网首页
Python内置函数classmethod()

Python内置函数classmethod()

作者: 简书冷雨 | 来源:发表于2017-09-15 09:52 被阅读0次

classmethod(function)

该函数是一个装饰器函数,用来指定一个类的方法为类方法,没有此函数指定的类的方法则称为实例方法

声明类方法的语法如下:

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

类方法的第一个参数是类对象参数,在方法被调用的时候自动将类对象传入,参数名称约定为 cls。如果一个方法被标示为类方法,则该方法可被类对象调用(如 C.f()),也可以被类的实例对象调用(如 C().f())。

另外,类被继承后,子类也可以调用父类的类方法,但是第一个参数传入的是子类的类对象。

示例

>>> class ClassA:
...     @classmethod
...     def class_method(cls, arg1):
...             print(cls)
...             print(arg1)
...
>>> ClassA.class_method('This is a class method.')
<class '__main__.ClassA'>
This is a class method.
>>> 
>>> ClassA().class_method('This is a class method.')
<class '__main__.ClassA'>
This is a class method.
>>> 
>>> 
>>> class ClassB(ClassA):
...     pass
...
>>> ClassB.class_method('Class method is called for a derived class.')
<class '__main__.ClassB'>
Class method is called for a derived class.
>>> 
>>> ClassB().class_method('Class method is called for a derived class.')
<class '__main__.ClassB'>
Class method is called for a derived class.

相关文章

网友评论

      本文标题:Python内置函数classmethod()

      本文链接:https://www.haomeiwen.com/subject/foudsxtx.html