Python面向對象編程(3)——類方法、靜態方法
類方法、靜態方法
1 靜態方法
定義形式:@staticmethod裝飾,參數不需要self
靜態方法無法引用或訪問實例屬性,可通過類.類變量訪問類屬性
可以採用類、類實例進行調用
與類相關,但不依賴和改變類和實例
類相關工具方法放在其中,使函數歸於類,便於代碼的管理
class
StaticMethodDemo:
b=10
def
__init__(self,a=0):
self.a=a
@staticmethod
def
staticFun():
print(StaticMethodDemo.b)
# print(self.a)
if
__name__ ==
'__main__':
smd=StaticMethodDemo()
StaticMethodDemo.staticFun()
smd.staticFun()
2 類方法
定義形式:@classmethod,需要帶cls參數,表示自身這個類
無法引用或訪問實例屬性
可以採用類、類實例進行調用
與類相關,但不依賴和改變類和實例
工廠方法,創建類實例,完成有關預處理
類內調用靜態方法,不需要硬編碼類名
class
ClassMethodDemo:
b=10
def
__init__(self,a=0):
self.a=a
@staticmethod
def
staticFun():
return
ClassMethodDemo.b
@classmethod
def
classFun(cls,c=30):
return
cls(cls.staticFun()*c)
#返回類實例
# print(self.a)
if
__name__ ==
'__main__':
cmd=ClassMethodDemo.classFun(2)
print(cmd.a);
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.