1. 程式人生 > >python類方法/實例方法/靜態方法

python類方法/實例方法/靜態方法

ssm code 不能 pytho bject cls 隱式 test 裝飾器

類方法:隱式接收第一個參數為類本身的方法,通過類或實例皆可調用,在類方法定義中不能訪問實例屬性及調用實例方法,可以訪問已定義的類屬性和調用已定義的類方法,使用@classmethod裝飾器進行定義:

1 class Test(object):
2     @classmethod
3     def method(cls,*args,**kw):#此處cls即代表Test類本身
4         pass

實例方法:隱式接收第一個參數為實例本身的方法,只能通過實例進行調用,在實例方法定義中可以訪問自身已定義過的實例屬性及類屬性,調用實例方法和類方法,定義方法和函數定義方法相同,只是第一參數代表實例本身;

1 class Test(object):
2     def insMethod(self,*args,**kw):#self代表類的實例
3         pass

靜態方法:沒有隱式參數的方法,通過類或實例皆可調用,因為沒有傳入實例隱式參數,所以靜態方法定義中是不能調用自身定義的實例方法,可以通過類名訪問自生定義的類屬性和類方法,使用@staticmethod裝飾器進行定義:

class Test(object):
    @staticmethod
    def stMethod(*args,**kw):
        pass

python類方法/實例方法/靜態方法