python中range Python中的cls和self有什么区别?
Python中的cls和self有什么区别?
对于普通方法,第一个参数必须是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中的classmethod和staticmethod有什么具体用途?
静态方法:在一个方法中,您不需要访问任何实例方法和属性,只需传入参数并返回数据即可,因此适合使用静态方法来定义
类方法:您至少需要一个CLS参数,通过它可以获得类本身的属性方法等元信息。当存在子类继承时,子类对象被传入。
python中range vb中cls怎么用 cls是什么意思
版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。