一、主題介紹:
靜態方法是不需要實例化物件就能直接被呼叫使用,在類別程式中於函式前面加上 @staticmethod 這個指令,即是宣告此函式是使用靜態方法,靜態方法的參數不需要使用 self 來傳入類別本身,它目的是要將與類別有邏輯相關的函式放入類別中,提高程式的結構性,而且還可以避免與其它函式命名上互相衝突,順便也提高了後續程式維護上的方便性與可讀性。
二、程式範例:
class Myapp:
def __init__(self,name,age):
self.__name = name
self.__age = age
def setName(self,n):
self.__name = n
def setAge(self,a):
self.__age = a
def getName(self):
return self.__name
def getAge(self):
return self.__age
@staticmethod #靜態方法
def people(name,age):
print(name," 的年齡是 ",age,"歲 !")
#靜態方法不需要實例化可以直接使用
Myapp.people('Mary',18)
#實例化類別
A = Myapp('Andy',53)
print(A.getName()," 的年紀是 ",A.getAge(),"歲 !")
A.setName('Joe')
A.setAge(89)
print(A.getName()," 的年紀是 ",A.getAge(),"歲 !")
#執行結果
Mary 的年齡是 18 歲 !
Andy 的年紀是 53 歲 !
Joe 的年紀是 89 歲 !
三、程式說明:
使用靜態方法 @staticmethod 可以將不屬於類別的函式整合到類別裡面,可以物件實例化或不用實例化就可以使用靜態方法,這在撰寫物件導向程式設計時非常有用。
沒有留言:
張貼留言