python实例方法、类方法和静态方法的区别

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
    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/

你可能感兴趣的:(python实例方法、类方法和静态方法的区别)