python用类名直接调用方法_Python类的实例方法、静态方法、类方法详解,附代码示例...
實(shí)例方法
普通實(shí)例方法(instance method),第一個(gè)參數(shù)需要是self,它表示一個(gè)具體的實(shí)例本身,只能被實(shí)例對(duì)象調(diào)用,通過(guò)self引用的可能是類屬性、也有可能是實(shí)例屬性。
實(shí)例方法訪問(wèn)類屬性、實(shí)例屬性,類方法、實(shí)例方法、靜態(tài)方法。
靜態(tài)方法
靜態(tài)方法(static method),使用裝飾器@staticmethod來(lái)定義靜態(tài)方法,不需要參數(shù)self 。靜態(tài)方法屬于類,與實(shí)例無(wú)關(guān),因此可以被類對(duì)象直接調(diào)用。也正是因?yàn)殪o態(tài)?法中不需要額外定義參數(shù),因此要在靜態(tài)?法中引?類屬性,必須通過(guò)類對(duì)象來(lái)引?。
在TestOps類中,定義了一個(gè)類屬性time,每次調(diào)用common()這個(gè)靜態(tài)方法的時(shí)候都返回包含類屬性的信息,但是當(dāng)類名變化時(shí),那么該靜態(tài)方法中的類屬性TestOps.time也需要變成對(duì)應(yīng)類名.time,這個(gè)問(wèn)題可以用類方法解決。
注意,靜態(tài)方法不能訪問(wèn)實(shí)例屬性和實(shí)例方法。
類方法
類方法(class method),使用裝飾器@classmethod來(lái)定義類方法,至少傳入一個(gè)cls參數(shù),且為第一參數(shù),通過(guò)cls引用的必定是類對(duì)象的屬性和方法,執(zhí)行類方法時(shí),自動(dòng)將調(diào)用該方法的類賦值給cls參數(shù)。
使用類方法,就可以解決上述使用靜態(tài)方法出現(xiàn)的問(wèn)題,當(dāng)類名改變,對(duì)類方法進(jìn)行修改。
注意,類方法也不能訪問(wèn)實(shí)例屬性和實(shí)例方法。最后,實(shí)例方法只能被實(shí)例對(duì)象調(diào)用,靜態(tài)方法(被@staticmethod裝飾)、類方法(被@classmethod裝飾),可以被類或類的實(shí)例對(duì)象調(diào)用。
類中靜態(tài)方法調(diào)用靜態(tài)方法與類方法調(diào)用靜態(tài)方法實(shí)現(xiàn)
通過(guò)如下實(shí)例了解靜態(tài)方法、類方法之間的相互調(diào)用。
總結(jié)
以上是生活随笔為你收集整理的python用类名直接调用方法_Python类的实例方法、静态方法、类方法详解,附代码示例...的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 二分类最优阈值确定_机器学习 | 详解G
- 下一篇: python怎样实现封装_大牛教你如何封