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