1261

6 分钟

#Python 的内置函数 classmethod

说明:把一个方法封装成类方法。

#函数说明

def classmethod(fn): ''' 把一个方法封装成类方法 :param fn: 要封装的方法 :return: 封装后的方法 '''

说明

将一个方法封装成类方法,通常以 装饰器 的形式使用。

类方法隐含的第一个参数就是类本身,就像实例方法接收实例作为参数一样。要声明一个类方法,按惯例请使用以下方案:

class C: @classmethod def fn(cls, arg1, arg2): pass

类方法的调用可以在类上进行,也可以在实例对象上进行。通过对象调用时,隐含的第一个参数传入的是类 而不是对象。如果该对象包含此类以外的属性,将无法被访问。

通过派生类(或派生类的实例对象)调用基类的类方法时,隐含的第一个参数传入的是派生类,而不是基类,因此派生类包含的额外属性可以被访问。

注意,类方法不是其它语言中的静态方法,要创建静态方法请使用 staticmethod 装饰器。

参数

  • fn - 要封装成类方法的函数

返回值

封装成类方法后的函数。

#示例

class Cat: name = '薛定谔' @classmethod def speak(cls): print(f'喵喵喵,我叫{cls.name}') # 通过类调用 Cat.speak() # 通过对象调用 cat = Cat() cat.name = '狗' # 给对象实例绑定 name 属性 cat.speak() # 类方法访问的仍是类的 name 属性

>>> Establishing WebAssembly Runtime.

>>> Standby.

Powered by Shift.

#推荐阅读

创建于 2025/6/9

更新于 2025/6/12