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ù)的困難
