新聞中心
在調(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ō)并沒有嚴(yán)格的限制。下面就python中選擇staticmethod的好處,我們用兩個(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ì)象都沒有聯(lián)系,等同于是在class外定義的function,它屬于函數(shù)。
以上就是我們?cè)趐ython中選擇staticmethod的兩個(gè)好處,相信小伙伴們已經(jīng)在代碼的演示中體會(huì)到了,學(xué)會(huì)后可以在課后勤加練習(xí),然后熟能生巧。
新聞名稱:創(chuàng)新互聯(lián)Python教程:python中選擇staticmethod的好處
本文鏈接:http://m.5511xx.com/article/cocpcsd.html


咨詢
建站咨詢
