python实例方法、类方法和静态方法的区别
首先看一个实例,类A中的方法依次是实例方法、类方法和静态方法
class A(object):
def instancemethod(self);
print "i am instancemethod"
@classmethod
def classmethod(cls):
print "i am classmethod"
@staticmethod
def staticmethod():
print "i am staticmethod"
a = A()
a.instancemethod()
A.instancemethod()
A.staticmethod()
A.classmethod()
a.classmethod()
a.staticmethod()
>>>i am instancemethod
>>>Traceback (most recent call last):
File "test.py", line 15, in <module>
A.instancemethod()
TypeError: unbound method instancemethod() must be called with A instance as first argument (got nothing instead)
>>>i am staticmethod
>>>i am classmethod
>>>i am classmethod
>>>i am staticmethod
从输出结果可知:
1、实例方法只能只能被实例对象所调用,不能被类直接调用
2、类方法和静态方法既可以被实例对象调用又可以被类调用
使用场景:
------未完待续-------
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/30541278/viewspace-2150687/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/30541278/viewspace-2150687/