面试中经常会问到staticmethod 和 classmethod有什么区别?
首先看下官方的解释:
staticmethod:
它的一个作用就是将一个一个类的函数转为一个静态函数。静态函数的作用和java,c++的静态函数类似,作用一些全局变量等。
classmethod:
classmethod 和 c++,java的类方法不同。类方法的参数是一个类,实例方法的参数是一个实例。
例如下面的程序:
其中的__main__.A 为类A的名字。
如果将@classmethod去掉,则输出的结果为:
可以看到这个时候rty的内容为,类A实例的地址。它和c++的类方法不是一回事儿,c++,java的类方法必须通过实例来调用。
如需转载,请注明文章出处和来源网址:http://www.divcss5.com/html/h63947.shtml