11、‘classmethod‘, 修饰符对应的函数不需要实例化,不需要 self 参数,但第一个参数需要是表示自身类的 cls 参数,可以来调用类的属性,类的方法,实例化对象等。
class classmethod(object) | classmethod(function) -> method | | Convert a function to be a class method. # 将一个函数转换成类方法 | | A class method receives the class as implicit first argument,
一个类方法,接收类作为隐式参数 | just like an instance method receives the instance.
就像一个实例方法接收实例对象 | To declare a class method, use this idiom: | | class C: | @classmethod | def f(cls, arg1, arg2, ...): | ... | | It can be called either on the class (e.g. C.f()) or on an instance | (e.g. C().f()). The instance is ignored except for its class.
可以用类对象调用f函数,也可以实例对象调用f函数。 | If a class method is called for a derived class, the derived class | object is passed as the implied first argument. | | Class methods are different than C++ or Java static methods. | If you want those, see the staticmethod builtin. | | Methods defined here: | | __get__(self, instance, owner, /) | Return an attribute of instance, which is of type owner. | | __init__(self, /, *args, **kwargs) | Initialize self. See help(type(self)) for accurate signature. | | __new__(*args, **kwargs) from builtins.type | Create and return a new object. See help(type) for accurate signature. | | ---------------------------------------------------------------------- | Data descriptors defined here: | | __dict__ | | __func__ | | __isabstractmethod__