[Python]静态方法和类方法

python没有和C++中static关键字,它的静态方法是怎样的呢?
在C++中没有的类方法又是神马?
python中实现静态方法和类方法都是依赖于python的修饰器来实现的。

class MyClass: 
 
    def  method(self): 
           print("method") 
 
    @staticmethod 
    def  staticMethod(): 
            print("static method") 
 
     @classmethod 
     def classMethod(cls): 
           print("class method") 



区别:1、对象方法有self参数,类方法有cls参数,静态方法是不需要这些附加参数的。
      2、静态方法:无法访问类属性、实例属性,相当于一个相对独立的方法,跟类其实没什么关系,换个角度来讲,其实就是放在一个类的作用域里的函数而已。
      3、类成员方法:可以访问类属性,无法访问实例属性。

另外要说明的一点是,所有的__new__方法都是类方法,所以要显示地传入类(cls)作为第一个参数。

你可能感兴趣的:([Python]静态方法和类方法)