1.概念:
靜態(tài)方法是類中的函數(shù),不需要實例。靜態(tài)方法主要是用來存放邏輯性的代碼,主要是一些邏輯屬于類,但是和類本身沒有交互【不需要創(chuàng)建類的實例對象而是直接使用類名.靜態(tài)方法調(diào)用】,即在靜態(tài)方法中,不會涉及到類中的方法和屬性的操作【在類的方法傳參區(qū)間不需要傳入類的實例對象】??梢岳斫鉃閷㈧o態(tài)方法存在此類的名稱空間中。事實上,在python引入靜態(tài)方法之前,通常是在全局名稱空間中創(chuàng)建函數(shù)。
import time class TimeTest(object): def __init__(self,hour,minute,second): self.hour = hour self.minute = minute self.second = second @staticmethod def showTime(): return time.strftime("%H:%M:%S", time.localtime()) print(TimeTest.showTime()) t = TimeTest(2,10,10) nowTime = t.showTime() print(nowTime)
3.意義:
使用靜態(tài)函數(shù),既可以將獲得時間的函數(shù)功能與實例解綁,我想獲得當前時間的字符串時,并不一定需要實例化對象,此時更像是一種名稱空間。
我們可以在類外面寫一個簡單的方法來做這些,但是這樣做就擴散了類代碼的關(guān)系到類定義的外面,這樣寫就會導(dǎo)致以后代碼維護的困難