91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

classmethod怎么在python中選擇參數

發布時間:2020-12-14 09:30:58 來源:億速云 閱讀:191 作者:小新 欄目:編程語言

這篇文章將為大家詳細講解有關classmethod怎么在python中選擇參數,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。

class Data_test2(object):
    day=0
    month=0
    year=0
    def __init__(self,year=0,month=0,day=0):
        self.day=day
        self.month=month
        self.year=year
 
    @classmethod
    def get_date(cls, string_date):
        #這里第一個參數是cls, 表示調用當前的類名
        year,month,day=map(int,string_date.split('-'))
        date1=cls(year,month,day)
        #返回的是一個初始化后的類
        return date1
 
    def out_date(self):
        print "year :"
        print self.year
        print "month :"
        print self.month
        print "day :"
        print self.day

在Date_test類里面創建一個成員函數, 前面用了@classmethod裝飾。 它的作用就是有點像靜態類,比靜態類不一樣的就是它可以傳進來一個當前類作為第一個參數。那么如何調用呢?

r=Data_test2.get_date("2016-8-1")
r.out_date()

輸出:

year :
2016
month :
8
day :
1

這樣子等于先調用get_date()對字符串進行處理,然后才使用Data_test的構造函數初始化。

補充classmethod與staticmethod:

這兩者的區別在于,classmethod增加了一個對實際調用類的引用,這帶來了很多方便的地方:

  • 方法可以判斷出自己是通過基類被調用,還是通過某個子類被調用

  • 通過子類調用時,方法可以返回子類的實例而非基類的實例

  • 通過子類調用時,方法可以調用子類的其他classmethod

一般來說classmethod可以完全替代staticmethod。staticmethod唯一的好處是調用時它返回的是一個真正的函數,而且每次調用時返回同一個實例(classmethod則會對基類和子類返回不同的bound method實例),但這點幾乎從來沒有什么時候是有用的。不過,staticmethod可以在子類上被重寫為classmethod,反之亦然,因此也沒有必要提前將staticmethod全部改為classmethod,按需要使用即可。

關于classmethod怎么在python中選擇參數就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

昂仁县| 卓资县| 桑日县| 和顺县| 布拖县| 黔江区| 城口县| 蚌埠市| 丰县| 高台县| 延长县| 屯昌县| 西乡县| 湖口县| 富蕴县| 绩溪县| 石屏县| 抚顺县| 分宜县| 夏津县| 潼关县| 两当县| 日土县| 玛沁县| 鹤庆县| 江口县| 宜州市| 大足县| 阳山县| 邛崃市| 枝江市| 平湖市| 阿巴嘎旗| 正蓝旗| 临夏市| 汝城县| 开封市| 太谷县| 正阳县| 调兵山市| 佛坪县|