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呢?

https://www.zhihu.com/question/20021164

posted @ 2020-11-05 15:37  琴影  阅读(261)  评论(0编辑  收藏  举报