欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

怎么使用@Staticmethod、@Classmethod和@Property類裝飾器

這篇文章主要講解了“怎么使用@Staticmethod、@Classmethod和@Property類裝飾器”,文中的講解內(nèi)容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“怎么使用@Staticmethod、@Classmethod和@Property類裝飾器”吧!

站在用戶的角度思考問題,與客戶深入溝通,找到平邑網(wǎng)站設計與平邑網(wǎng)站推廣的解決方案,憑借多年的經(jīng)驗,讓設計與互聯(lián)網(wǎng)技術結合,創(chuàng)造個性化、用戶體驗好的作品,建站類型包括:成都網(wǎng)站設計、成都網(wǎng)站建設、企業(yè)官網(wǎng)、英文網(wǎng)站、手機端網(wǎng)站、網(wǎng)站推廣、域名注冊網(wǎng)站空間、企業(yè)郵箱。業(yè)務覆蓋平邑地區(qū)。

怎么使用@Staticmethod、@Classmethod和@Property類裝飾器

@staticmethod 與 @classmethod在Python中稱為  裝飾器,用來修飾函數(shù),相當于添加一個額外的功能,不再像普通函數(shù)那樣進行實例化。

@staticmethod和@classmethod

其實@staticmethod和@classmethod都是用來聲明靜態(tài)方法的。只不過一個聲明靜態(tài)方法,一個聲明類方法。

靜態(tài)方法:使用裝飾器@staticmethod。沒有self和cls參數(shù)。

類方法:使用裝飾器@classmethod。第一個參數(shù)為當前類的對象,通常為cls。

為了方便大家了解兩者的差別,以下的示例代碼將有助于發(fā)現(xiàn)其中的差別:

''' @Author:Runsen @微信公眾號:Python之王 @博客:https://blog.csdn.net/weixin_44510615 @Date:2020/8/30 ''' class A():     # 類的屬性     x = 1      @classmethod     def get_name(cls, name):         print(cls.x)           print('my name is %s' % name)      @staticmethod     def get_age(age):         print(A.x)         print(f'i am %s years old' % age)  if __name__ == '__main__':     A.get_name('Runsen')       A.get_age(20)          # 實例對象同樣運行     a = A()     a.get_name('Runsen')     a.get_age(20)       #輸出如下 1 my name is Runsen 1 i am 20 years old 1 my name is Runsen 1 i am 20 years old

如果在 @staticmethod 中要調(diào)用到這個類的一些屬性方法,只能直接 類名.屬性名或 類名.方法名。而 @classmethod  因為持有cls參數(shù),可以通過cls來調(diào)用類的屬性,類的方法,實例化對象等,避免硬編碼。

@property

@property可以將一個方法的調(diào)用變成屬性調(diào)用。舉例說明:平時我們調(diào)用數(shù)據(jù)屬性和方法,是這樣的

class School():     name = "家里蹲大學"      def test(self):         print("實例方法")      @property     def test_pro(self):         print("靜態(tài)屬性")  if __name__ == "__main__":     s = School()     print(s.name)     s.test()       # 輸出如下     家里蹲大學  實例方法

這時就要用到@preperty裝飾器,該裝飾器能夠讓一個方法變成屬性調(diào)用。

class School():     name = "家里蹲大學"      def test(self):         print("實例方法")      @property     def test_pro(self):         print("靜態(tài)屬性")  if __name__ == "__main__":     s = School()     print(s.name)     # 注意返回的函數(shù) 千萬別加()     s.test_pro       # 輸出如下    家里蹲大學  靜態(tài)屬性

從今天以后,在Python編程中,@property廣泛應用在Python類的定義中非常常見。你一看到@property,第一反應就是:@property專門負責把一個方法變成同名屬性的。

感謝各位的閱讀,以上就是“怎么使用@Staticmethod、@Classmethod和@Property類裝飾器”的內(nèi)容了,經(jīng)過本文的學習后,相信大家對怎么使用@Staticmethod、@Classmethod和@Property類裝飾器這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是創(chuàng)新互聯(lián),小編將為大家推送更多相關知識點的文章,歡迎關注!

新聞名稱:怎么使用@Staticmethod、@Classmethod和@Property類裝飾器
文章出自:http://chinadenli.net/article8/ihoiop.html

成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供品牌網(wǎng)站設計用戶體驗網(wǎng)站設計做網(wǎng)站建站公司關鍵詞優(yōu)化

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都網(wǎng)站建設