創(chuàng)新互聯(lián)www.cdcxhl.cn八線動(dòng)態(tài)BGP香港云服務(wù)器提供商,新人活動(dòng)買多久送多久,劃算不套路!
10年積累的成都網(wǎng)站建設(shè)、網(wǎng)站建設(shè)經(jīng)驗(yàn),可以快速應(yīng)對(duì)客戶對(duì)網(wǎng)站的新想法和需求。提供各種問題對(duì)應(yīng)的解決方案。讓選擇我們的客戶得到更好、更有力的網(wǎng)絡(luò)服務(wù)。我雖然不認(rèn)識(shí)你,你也不認(rèn)識(shí)我。但先建設(shè)網(wǎng)站后付款的網(wǎng)站建設(shè)流程,更有老城免費(fèi)網(wǎng)站建設(shè)讓你可以放心的選擇與我們合作。這篇文章主要介紹了python中靜態(tài)方法和類方法有哪些區(qū)別,具有一定借鑒價(jià)值,需要的朋友可以參考下。希望大家閱讀完這篇文章后大有收獲。下面讓小編帶著大家一起了解一下。
區(qū)別:
靜態(tài)方法裝飾器下定義的方法屬于函數(shù)(function);
類方法裝飾器下定義的方法屬于方法(method);
靜態(tài)方法無需傳入任何參數(shù);
類方法傳入的第一個(gè)參數(shù)必須是class本身cls;
靜態(tài)方法與類方法一旦被調(diào)用,內(nèi)存地址即確定。通過類調(diào)用和通過實(shí)例化對(duì)象調(diào)用的結(jié)果完全一樣。
直接上代碼:
# coding:utf-8 class Apple: def fun1(self): return 'normal' @staticmethod def fun2(): return 'staticmethod' @classmethod def fun3(cls): return 'classmethod' print Apple.fun1 print Apple.fun2 print Apple.fun3 print "-"*80 apple = Apple() print apple.fun1 print apple.fun2 print apple.fun3 print "-"*80 apple1 = Apple() print apple1.fun1 print apple1.fun2 print apple1.fun3
運(yùn)行結(jié)果:
> -------------------------------------------------------------------------------- > > -------------------------------------------------------------------------------- > >
普通方法傳入的第一個(gè)參數(shù)必須是self(當(dāng)然也可以不用self,官方要求盡量用self),self是指實(shí)例對(duì)象本身;靜態(tài)方法無需傳參;
類方法傳入的第一個(gè)參數(shù)必須是class,是指類本身。
對(duì)比結(jié)果1,5,9行
fun1通過class調(diào)用時(shí),它是未綁定的方法,而實(shí)例化apple和apple1之后,它屬于綁定的方法,且實(shí)例化后的apple和apple1內(nèi)存地址不同,因?yàn)樗鼈儗儆诓煌膶?shí)例對(duì)象。
對(duì)比結(jié)果2,6,10行
靜態(tài)方法fun2通過class調(diào)用或者通過實(shí)例化后的對(duì)象調(diào)用,是沒有任何區(qū)別的,全部都是指向同一塊內(nèi)存地址??梢院?jiǎn)單的理解成靜態(tài)方法與類或者實(shí)例沒有任何關(guān)系,一旦調(diào)用后,它的內(nèi)存地址即確定。
對(duì)比結(jié)果3,7,11行
類方法fun3通過class調(diào)用或者通過實(shí)例化后的對(duì)象調(diào)用,是沒有任何區(qū)別的,全部都是指向同一塊內(nèi)存地址。為什么?因?yàn)閷?shí)例化對(duì)象apple和apple1調(diào)用類方法fun3傳入的第一個(gè)參數(shù)是類本身Apple,也就是說apple.fun3 = apple1.fun3 = Apple.fun3。
感謝你能夠認(rèn)真閱讀完這篇文章,希望小編分享python中靜態(tài)方法和類方法有哪些區(qū)別內(nèi)容對(duì)大家有幫助,同時(shí)也希望大家多多支持創(chuàng)新互聯(lián),關(guān)注創(chuàng)新互聯(lián)-成都網(wǎng)站建設(shè)公司行業(yè)資訊頻道,遇到問題就找創(chuàng)新互聯(lián),詳細(xì)的解決方法等著你來學(xué)習(xí)!