使用方法:
class A(object):
def foo(self,x):
#類例項方法
print "executing foo(%s,%s)"%(self,x)
@classmethod
def class_foo(cls,x):
#類方法
print "executing class_foo(%s,%s)"%(cls,x)
@staticmethod
def static_foo(x):
#靜態方法
print "executing static_foo(%s)"%x
呼叫方法:
a = A()
a.foo(1) //print : executing foo(
a.class_foo(1) //executing class_foo(
A.class_foo(1) //executing class_foo(
a.static_foo(1) //executing static_foo(1)
A.static_foo(1) //executing static_foo(1)
類方法和靜態方法都可以被類和類例項呼叫,類例項方法僅可以被類例項呼叫。
類方法的隱含呼叫引數是類,而類例項方法的隱含呼叫引數是類的例項,靜態方法沒有隱含呼叫引數。
使用方法:
class A(object):
def foo(self,x):
#類例項方法
print "executing foo(%s,%s)"%(self,x)
@classmethod
def class_foo(cls,x):
#類方法
print "executing class_foo(%s,%s)"%(cls,x)
@staticmethod
def static_foo(x):
#靜態方法
print "executing static_foo(%s)"%x
呼叫方法:
a = A()
a.foo(1) //print : executing foo(
a.class_foo(1) //executing class_foo(
A.class_foo(1) //executing class_foo(
a.static_foo(1) //executing static_foo(1)
A.static_foo(1) //executing static_foo(1)
類方法和靜態方法都可以被類和類例項呼叫,類例項方法僅可以被類例項呼叫。
類方法的隱含呼叫引數是類,而類例項方法的隱含呼叫引數是類的例項,靜態方法沒有隱含呼叫引數。