django中類屬性和類方法的實現(xiàn)
django中直接定義類的屬性,可以直接在實例化對象或者類中調(diào)用。
類屬性:version_number是一個類屬性,在所有實例之間共享。它在類加載時就被初始化。
class Book: version_number = "1.0.0" def __init__(self, title, author): self.title = title self.author = author @classmethod def get_version(cls): return cls.version_number # 使用類方法 print(Book.get_version()) # 輸出: 1.0.0
什么時候需要類方法(@classmethod):
1、如果你需要定義一個方法,它需要訪問類級別的數(shù)據(jù)(如類屬性);
2、定義類方法,就是可以其他的這個類以外的方法也可以調(diào)用。
3、如果你需要定義一個方法,需要在方法中使用 cls 來創(chuàng)建類的實例
4、執(zhí)行其他與類相關(guān)的操作,那么你應該使用 @classmethod。
class Book: version_number = "1.0.0" def __init__(self, title, author): self.title = title self.author = author @classmethod def get_version(cls): return cls.version_number # 使用類方法 print(Book.get_version()) # 輸出: 1.0.0
這個例子中,get_version 是一個類方法,通過 @classmethod 裝飾器聲明,允許你訪問類屬性 version_number。如果你的需求是類似的,那么你就需要使用類方法。否則,如果只是需要在類定義時執(zhí)行某個函數(shù)并將結(jié)果存儲為類屬性,不需要將其定義為類方法。
到此這篇關(guān)于django中類屬性和類方法的實現(xiàn)的文章就介紹到這了,更多相關(guān)django 類屬性和類方法內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
解決nohup執(zhí)行python程序log文件寫入不及時的問題
今天小編就為大家分享一篇解決nohup執(zhí)行python程序log文件寫入不及時的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-01-01django框架自定義模板標簽(template tag)操作示例
這篇文章主要介紹了django框架自定義模板標簽(template tag)操作,結(jié)合實例形式分析了Django框架自定義模板標簽原理、操作步驟與相關(guān)實現(xiàn)技巧,需要的朋友可以參考下2019-06-06Python內(nèi)置函數(shù) next的具體使用方法
這篇文章主要介紹了Python內(nèi)置函數(shù) next的具體使用方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-11-11Python大數(shù)據(jù)之從網(wǎng)頁上爬取數(shù)據(jù)的方法詳解
這篇文章主要介紹了Python大數(shù)據(jù)之從網(wǎng)頁上爬取數(shù)據(jù)的方法,結(jié)合實例形式詳細分析了Python爬蟲爬取網(wǎng)頁數(shù)據(jù)的相關(guān)操作技巧,需要的朋友可以參考下2019-11-11Python+OpenCV實現(xiàn)車牌字符分割和識別
這篇文章主要為大家詳細介紹了Python+OpenCV實現(xiàn)車牌字符分割和識別,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2018-03-03Pytorch數(shù)據(jù)讀取之Dataset和DataLoader知識總結(jié)
Dataset和DataLoader都是Pytorch里面讀取數(shù)據(jù)的工具.現(xiàn)在對這兩種工具做一個概括和總結(jié),對正在學習Pytorch的小伙伴們很有幫助,需要的朋友可以參考下2021-05-05