Python靜態函數和普通方法的區別
下面通過一個例子,講解Python靜態函數、普通方法、類方法的區別
#-*-coding:utf-8-*-
#普通方法,類方法,靜態方法的區別
__metaclass__=type
classTst:
name='tst'
data='thisisdata'
#普通方法
defnormalMethod(self,name):
printself.data,name
#類方法,可以訪問類屬性
@classmethod
defclassMethod(cls,name):
printcls.data,name
#靜態方法,不可以訪問類屬性
@staticmethod
defstaticMethod(name):
printname
三種方法都可以通過實例來調用,但是靜態方法和類方法無法訪問實例屬性,所以更改了tst.data僅對普通方法起了作用
tst=Tst()
tst.data='thisisnew'
tst.normalMethod('name')
tst.staticMethod('name')
tst.classMethod('name')
#結果
thisisnewname
name
thisisdataname
區別
普通方法不能通過類名調用,但是靜態方法和類方法是可以的
#error普通方法必須通過實例調用#
Tst.normalMethod('name')Tst.classMethod('name')
Tst.staticMethod('name')#結果thisisdataname
name
總結:
1、普通方法,可以通過self訪問實例屬性
defnormalMethod(self,data)
2、類方法,可以通過cls訪問類屬性
@classmethod
defclassMethod(cls,data)
3、靜態方法,不可以訪問,通過傳值的方式
@staticmethod
defstaticMethod(data)
以上內容為大家介紹了Python靜態函數和普通方法的區別,希望對大家有所幫助,如果想要了解更多Python相關知識,請關注IT培訓機構:千鋒教育。

猜你喜歡LIKE
相關推薦HOT
更多>>
為什么Python爬蟲使用MongoDB?
想必大家都知道,在從事網絡爬蟲工作之前,我們需要掌握很多知識,除了基本的爬蟲原理之外,我們還需要學習框架、數據庫等,其中就包含MongoDB...詳情>>
2023-11-07 23:02:10
python如何進行類型轉換的
python提供了將變量或值從一種類型轉換成另一種類型的內置函數。1、int:將符合數學格式數字型字符串轉換成整數。>>>int('123')1232、s...詳情>>
2023-11-07 18:51:20
python怎么生成隨機數
以下實例演示了python如何生成一個隨機數:#生成0~9之間的隨機數#導入random(隨機數)模塊importrandomprint(random.randint(0,9))執行以上代碼...詳情>>
2023-11-07 17:09:17
python如何刪除空格
python中的字符串方法提供了如下常用的方法來刪除空白:strip():刪除字符串前后的空白。lstrip():刪除字符串前面(左邊)的空白。rstrip():刪...詳情>>
2023-11-07 14:57:44熱門推薦
技術干貨






