编程语言排行榜 Python中的cls和self有什么区别?
Python中的cls和self有什么区别?
对于普通方法,第一个参数必须是self,它表示一个特定实例本身。如果忽略静态方法,可以将其用作常规方法。对于classmethod,第一个参数是CLS,而不是self,它表示类本身。>>> A类(对象):def foo1(self):打印“Hello”self@staticmethoddefFoo2():print“Hello”@classmethoddef foo3(CLS):print“Hello”,CLS>>>> a=a()>>> a。foo1()是最常见的调用方式,但它和下面的方式一样你好
区别在于以下两个方面:
1。Classmethod类方法必须将类作为第一个参数,“can access the class variable”,可以通过实例名或类名访问;
2。静态方法Static method不强制传入self或CLS,对类和实例一无所知(相当于将class方法变成普通方法,独立于类),“无法访问类”还可以通过实例名或类名访问实例变量。
具体用途如下:
1。Classmethod类方法依赖self或CLS来传递参数,因此它必须写在类中,与类密切相关,并且可以访问类外的类变量;
2。静态方法静态方法完全独立于类,因此它不能访问类方法。
就这么简单。是否需要访问类变量取决于是否需要访问类方法。
编程语言排行榜 python中cls是什么 cls是什么意思
版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。