關(guān)于Python3 類(lèi)方法、靜態(tài)方法新解
如下所示:
class Date:
def __init__(self, year, month, day):
self.year = year
self.month = month
self.day = day
# 實(shí)例方法
def tomorrow(self):
self.day +=1
def __str__(self):
return '{}/{}/{}'.format(self.year,self.month,self.day)
# 靜態(tài)方法
@staticmethod
def format_date_str(date_str):
year, month, day = tuple(date_str.split('-'))
return Date(int(year),int(month),int(day))
# 類(lèi)方法
# 這里的 cls 實(shí)際就是類(lèi)本身,它將自己本身返回,不需要我們寫(xiě)返回的類(lèi)名,更好一些
@classmethod
def format_str(cls, date_str):
year, month, day = tuple(date_str.split('-'))
return cls(int(year),int(month),int(day))
if __name__ == "__main__":
new = Date(2018,12,12)
print(new)
new.tomorrow()
print(new)
# 現(xiàn)在我們想輸入一個(gè)日期字符串需要怎么做呢?
date_str = '2018-12-30'
year, month, day = tuple(date_str.split('-')) # 這里利用了tuple的拆包屬性,將分開(kāi)的列表分別賦給變量
new = Date(year,month,day)
print(new)
# 如果有靜態(tài)方法,就會(huì)更加簡(jiǎn)單了
new = Date.format_date_str('2019-12-01')
print(new)
# 但是靜態(tài)方法還要將類(lèi)的名稱(chēng)返回,那有沒(méi)有更好的方法呢
# 那就是類(lèi)方法,類(lèi)方法的原理就是 將輸入的參數(shù)處理后 通過(guò)類(lèi)方法返回一個(gè)實(shí)例對(duì)像,靜態(tài)方法也是如此,但靜態(tài)方法可以不返回實(shí)例 而返回其他的
new = Date.format_str('2019-9-01')
print(new)
# 那么問(wèn)題來(lái)了?什么使用用靜態(tài)方法,什么時(shí)候使用類(lèi)方法呢?
# 原則上是:當(dāng)需要返回實(shí)例時(shí)使用類(lèi)方法,不需要返回實(shí)例對(duì)象時(shí) 直接使用靜態(tài)方法就好了,
# 例如我們做驗(yàn)證日期字符串是否合法的時(shí)候沒(méi)必要返回實(shí)例,那就使用 靜態(tài)方法就可以了
以上這篇關(guān)于Python3 類(lèi)方法、靜態(tài)方法新解就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
python實(shí)現(xiàn)測(cè)試工具(一)——命令行發(fā)送get請(qǐng)求
這篇文章主要介紹了python如何實(shí)現(xiàn)命令行發(fā)送get請(qǐng)求,幫助大家更好的利用python進(jìn)行測(cè)試工作,感興趣的朋友可以了解下2020-10-10
兩個(gè)命令把 Vim 打造成 Python IDE的方法
這篇文章主要介紹了兩個(gè)命令把 Vim 打造成 Python IDE,需要的朋友可以參考下2016-03-03
Python辦公自動(dòng)化Word轉(zhuǎn)Excel文件批量處理
這篇文章主要為大家介紹了Python辦公自動(dòng)化Word轉(zhuǎn)Excel文件批量處理示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-06-06
python使用phonemizer實(shí)現(xiàn)獲取英文文本句子單詞音素
這篇文章主要為大家詳細(xì)介紹了python如何使用phonemizer實(shí)現(xiàn)獲取英文文本句子單詞音素,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起了解下2024-11-11
利用Python將數(shù)值型特征進(jìn)行離散化操作的方法
今天小編就為大家分享一篇利用Python將數(shù)值型特征進(jìn)行離散化操作的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-11-11
Python使用latexify模塊實(shí)現(xiàn)將代碼為數(shù)學(xué)公式
latexify 是一個(gè)輕量級(jí)的 Python 模塊,可以將 Python 代碼轉(zhuǎn)換為 LaTeX 格式的數(shù)學(xué)表達(dá)式,這篇文章就來(lái)和大家探索一下如何使用latexify模塊實(shí)現(xiàn)將代碼為數(shù)學(xué)公式吧2023-12-12

