python静态方法和类方法的区别

如题所述

classA:deffun_i(self,x):print(x)@classmethoddeffun_c(cls,x):print(x)@staticmethoddeffun_s(x):print(x)a=A()a.fun_i(1)a.fun_s(1)A.fun_c(1)A.fun_s(1)调用方式不同:类方法:应该通过类调用实例方法:应该通过实例调用静态方法:既可以通过类调用,也可以通过实例调用实参和形参的定义和传递不同:静态方法:声明和调用时,都没有隐含参数。实例方法:声明时,要定义一个隐含参数:self。调用时,实例本身被隐含地传递给这个参数。类方法:声明时,要定义一个隐含参数:cls。调用时,类本身被隐含地传递给这个参数。
温馨提示:答案为网友推荐,仅供参考
相似回答