python classmethod修饰符
描述
classmethod 修饰符对应的函数不需要实例化,不需要 self 参数,但第一个参数需要是表示自身类的 cls 参数,可以来调用类的属性,类的方法,实例化对象等。
语法
classmethod 语法:
classmethod
参数
- 无。
返回值
返回函数的类方法。
实例
以下实例展示了 classmethod 的使用方法:
1 #! /usr/bin/python3 2 # -*- codeing:UTF-8 -*- 3 4 class A: 5 # 属性默认为类属性 (可以直接被类本身调用) 6 bar = 1 7 # 实例化方法(必须实例化类之后才能被调用) 8 def func1(self): # self表示实例化类后的地址id 9 print('foo') 10 # 类方法 (不需要实例化类就可以直接被类本身调用) 11 @classmethod 12 def func2(cls): # cls表示没被实例化的类本身 13 print('func2') 14 print(cls) 15 print(cls.bar) 16 cls().func1() # 必须要实例化之后才能调用func1() 17 # A.func1() # 会报错 18 A.func2()
输出结果为
func2 <class '__main__.A'> 1 foo
在哪些场合适合用classmethod呢?
越努力,越幸运