【十六】classmethod()函数(1)
【1】作用
- 将方法转换为类方法。
- 类方法将类作为隐式第一个参数接收,就像实例方法接收实例一样。
- 类方法可以在类(如c.f())上调用,也可以在实例(如c().f())上调用。
- 除了类之外,实例被忽略。
- 如果为派生类调用了类方法,则派生类对象将作为隐含的第一个参数传递。
- 类方法不同于C++或Java静态方法。
- 也就是说,classmethod修饰符对应的函数不需要实例化,不需要 self 参数,但第一个参数需要是表示自身类的 cls 参数,可以来调用类的属性,类的方法,实例化对象。
【2】语法
class C:
@classmethod
def f(cls, arg1, arg2, ...): ...
【3】示例
- 返回值:
- 返回函数的类方法
- 下面例子展示classmethod()函数函数使用方法
class B(object):
num = 10
def func1(self):
print('self')
@classmethod
def func2(cls):
print('func2')
print(cls.num)
cls().func1()
B.func2() # 不需要实例化
# func2
# 10
# self
标签:函数,classmethod,self,十六,实例,方法,cls
From: https://www.cnblogs.com/dream-ze/p/17450145.html