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