1.概念:
靜態(tài)方法是類中的函數(shù),不需要實(shí)例。靜態(tài)方法主要是用來(lái)存放邏輯性的代碼,主要是一些邏輯屬于類,但是和類本身沒(méi)有交互【不需要?jiǎng)?chuàng)建類的實(shí)例對(duì)象而是直接使用類名.靜態(tài)方法調(diào)用】,即在靜態(tài)方法中,不會(huì)涉及到類中的方法和屬性的操作【在類的方法傳參區(qū)間不需要傳入類的實(shí)例對(duì)象】??梢岳斫鉃閷㈧o態(tài)方法存在此類的名稱空間中。事實(shí)上,在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í)間的函數(shù)功能與實(shí)例解綁,我想獲得當(dāng)前時(shí)間的字符串時(shí),并不一定需要實(shí)例化對(duì)象,此時(shí)更像是一種名稱空間。
我們可以在類外面寫(xiě)一個(gè)簡(jiǎn)單的方法來(lái)做這些,但是這樣做就擴(kuò)散了類代碼的關(guān)系到類定義的外面,這樣寫(xiě)就會(huì)導(dǎo)致以后代碼維護(hù)的困難