這篇文章主要介紹了python中選擇staticmethod有哪些優(yōu)勢(shì),具有一定借鑒價(jià)值,需要的朋友可以參考下。希望大家閱讀完這篇文章后大有收獲。下面讓小編帶著大家一起了解一下。
10年積累的網(wǎng)站制作、成都網(wǎng)站建設(shè)經(jīng)驗(yàn),可以快速應(yīng)對(duì)客戶對(duì)網(wǎng)站的新想法和需求。提供各種問(wèn)題對(duì)應(yīng)的解決方案。讓選擇我們的客戶得到更好、更有力的網(wǎng)絡(luò)服務(wù)。我雖然不認(rèn)識(shí)你,你也不認(rèn)識(shí)我。但先網(wǎng)站設(shè)計(jì)制作后付款的網(wǎng)站建設(shè)流程,更有延安免費(fèi)網(wǎng)站建設(shè)讓你可以放心的選擇與我們合作。
在調(diào)用類的時(shí)候,我們有很多方法可以選擇,最后使用staticmethod解決問(wèn)題是因?yàn)樗旧淼囊恍┆?dú)特使用優(yōu)勢(shì)。小編在一些代碼示例的練習(xí)中,發(fā)現(xiàn)使用staticmethod時(shí)非常靈活,就拿實(shí)例化使用而言,其實(shí)對(duì)于staticmethod來(lái)說(shuō)并沒(méi)有嚴(yán)格的限制。python中選擇staticmethod的優(yōu)勢(shì),我們用兩個(gè)代碼示例進(jìn)行演示。
代碼示例1:
#!/usr/bin/python # -*- coding: UTF-8 -*- class C(object): @staticmethod def f(): print('runoob'); C.f(); # 靜態(tài)方法無(wú)需實(shí)例化 cobj = C() cobj.f() # 也可以實(shí)例化后調(diào)用
以上實(shí)例輸出結(jié)果為:
runoob runoob
以上實(shí)例聲明了靜態(tài)方法 f,從而可以實(shí)現(xiàn)實(shí)例化使用 C().f(),當(dāng)然也可以不實(shí)例化調(diào)用該方法 C.f()。
代碼示例2:
class Demo(): def fun1(self): Pass @classmethod def fun2(cls): pass @staticmethod def fun3(var): pass demo = Demo() print(demo) print(demo.fun1) print(demo.fun2) print(demo.fun3)
在class內(nèi)定義的普通方法(fun1),因?yàn)樗且嫦驅(qū)嵗瘜?duì)象的一個(gè)實(shí)例方法。
在class內(nèi)定義的類方法(fun2),它第一個(gè)參數(shù)必須是cls,并與class本身是綁定關(guān)系,它也屬于方法,但不屬于實(shí)例方法,可以被實(shí)例對(duì)象調(diào)用。
在class內(nèi)定義的靜態(tài)方法(fun3),它與任何對(duì)象都沒(méi)有聯(lián)系,等同于是在class外定義的function,它屬于函數(shù)。
感謝你能夠認(rèn)真閱讀完這篇文章,希望小編分享python中選擇staticmethod有哪些優(yōu)勢(shì)內(nèi)容對(duì)大家有幫助,同時(shí)也希望大家多多支持創(chuàng)新互聯(lián),關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,遇到問(wèn)題就找創(chuàng)新互聯(lián),詳細(xì)的解決方法等著你來(lái)學(xué)習(xí)!