python中cls关键字
2021/6/13 20:21:10
本文主要是介绍python中cls关键字,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
1.python中cls用法
https://www.zhihu.com/question/49660420
class A(object): a = 'a' @staticmethod def foo1(name): print('hello', name) def foo2(self, name): print ('hello', name) @classmethod def foo3(cls, name): print ('hello', name) A.foo1('hhh') A.foo3('clssss') #输出: hello hhh hello clssss
简单来说,就是cls用在@classmethod方法中,使得该方法仅通过类名就可以访问,无需建立对象;csl就相当于普通类函数中的self参数,通过它就可以防止硬编码,而访问类中的属性和函数
class A(object): a = 'a' def __init__(self,a,b): print(a,b) @classmethod def foo3(cls, name): print ('hello', name) a,b=1,2 cls(a,b) A.foo3('clssss') #输出: hello clssss 1 2
就可以直接调用了__init__函数,初始化了。当然如果存在类继承,就会是这个样子,会运行B的初始化函数,我也是惊呆了。
class A(object): a = 'a' def __init__(self,a,b): print(a,b) @classmethod def foo3(cls, name): print ('hello', name) a,b=1,2 cls(a)#在这里调用了b的初始化函数 class B(A): def __init__(self,a): print('B',a) B.foo3('clssss') #输出: hello clssss B 1
再稍微照着bert修改一下:
class A(object): a = 'a' def __init__(self,a,b): print(a,b) @classmethod def foo3(cls, name): print ('hello', name) a,b=1,2 model=cls(a) return model #可以返回一个B的对象 class B(A): def __init__(self,a): self.b=a print('B',a) b=B.foo3('clssss')#这里通过B来调用类函数~~~其实也就和A没啥关系了,只不过实现放在了A中而已 #输出: hello clssss B 1 >>> b.b 1
这篇关于python中cls关键字的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-10-04Python外包有哪些常见的主要库-icode9专业技术文章分享
- 2024-10-02基于深度学习的钢铁缺陷检测系统(yolov8、注意力机制、PyQt5界面、Python)
- 2024-10-01怎么用python搭建一个系统-icode9专业技术文章分享
- 2024-09-30Python基础入门教程
- 2024-09-30获取参数学习:Python中的基础教程
- 2024-09-30Python编程基础详解
- 2024-09-29点击加载学习:Python编程基础教程
- 2024-09-29数据科学五大Python前端库:第二部分
- 2024-09-27使用python 将ETH账户的资产打散
- 2024-09-26Python编程基础