''' #老方法 __metaclass__ = type class MyClass: def smeth(): #靜態方法定義沒有self參數,且可以被類自己直接調用 print 'This is a static method' smeth = staticmethod(smeth) #靜態方法在建立時裝入 staticmethod 類型 def cmeth(cls): #類方法在定義時,須要名爲 cls 的相似於 self 的參數,能夠用類的對象調用 print 'This is a class method' cemth = classmethod(cmeth) #類成員方法在建立時換入 classmethod 類型 ''' #裝飾器 #它能對任何可調用的對象進行包裝,既可以用於方法也可以用於函數 #使 @ 操做符,在方法(或函數)的上方將裝飾器列出,從而指定一個或者更多的裝飾器(多個裝飾器在應用時的順序與指定順序相反) __metaclass__= type class MyClass: @staticmethod #定義靜態方法 def smeth(): print 'This is a static method' @classmethod #定義類方法 def cmethd(cls): print 'This is a class method',cls def instancefun(self): #實例方法 print '實例方法' def function(): #普通方法 print '普通方法' mc = MyClass() MyClass.smeth() #類和對象均可以調用靜態方法 mc.smeth() MyClass.cmethd() #類方法也能夠直接被類調用 MyClass().cmethd() #類方法被對象調用 mc.instancefun() #對象調用實例方法 mc.cmethd() #對象調用類方法 #MyClass.instancefun() #類調用實例方法,報錯 #mc.function() #對象調用普通方法,報錯
x
'''
#老方法
__metaclass__ = type
class MyClass:
def smeth(): #靜態方法定義沒有self參數,且可以被類自己直接調用
print 'This is a static method'
smeth = staticmethod(smeth) #靜態方法在建立時裝入 staticmethod 類型
def cmeth(cls): #類方法在定義時,須要名爲 cls 的相似於 self 的參數,能夠用類的對象調用
print 'This is a class method'
cemth = classmethod(cmeth) #類成員方法在建立時換入 classmethod 類型
'''
#裝飾器
#它能對任何可調用的對象進行包裝,既可以用於方法也可以用於函數
#使 @ 操做符,在方法(或函數)的上方將裝飾器列出,從而指定一個或者更多的裝飾器(多個裝飾器在應用時的順序與指定順序相反)
__metaclass__= type
class MyClass:
#定義靜態方法
def smeth():
print 'This is a static method'
#定義類方法
def cmethd(cls):
print 'This is a class method',cls
def instancefun(self): #實例方法
print '實例方法'
def function(): #普通方法
print '普通方法'
mc = MyClass()
MyClass.smeth() #類和對象均可以調用靜態方法
mc.smeth()
MyClass.cmethd() #類方法也能夠直接被類調用
MyClass().cmethd() #類方法被對象調用
mc.instancefun() #對象調用實例方法
mc.cmethd() #對象調用類方法
#MyClass.instancefun() #類調用實例方法,報錯
#mc.function() #對象調用普通方法,報錯