最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

python中的class_static的@classmethod的巧妙用法

 更新時(shí)間:2021年06月21日 19:19:54   作者:peterpan--1998  
python中的class_static的@classmethod的使用 classmethod的使用,主要針對的是類而不是對象,在定義類的時(shí)候往往會(huì)定義一些靜態(tài)的私有屬性,今天通過示例代碼看下classmethod的妙用

python中的class_static的@classmethod的使用 classmethod的使用,主要針對的是類而不是對象,在定義類的時(shí)候往往會(huì)定義一些靜態(tài)的私有屬性,但是在使用類的時(shí)候可能會(huì)對類的私有屬性進(jìn)行修改,但是在沒有使用class method之前對于類的屬性的修改只能通過對象來進(jìn)行修改,這是就會(huì)出現(xiàn)一個(gè)問題當(dāng)有很多對象都使用這個(gè)屬性的時(shí)候我們要一個(gè)一個(gè)去修改對象嗎?答案是不會(huì)出現(xiàn)這么無腦的程序,這就產(chǎn)生classmethod的妙用。請看下面的代碼:

class Goods:
    __discount = 0.8
    def __init__(self,name,money):
        self.__name = name
        self.__money = money
    @property
    def price(self):
        return self.__money*Goods.__discount
    @classmethod
    def change(cls,new_discount):#注意這里不在是self了,而是cls進(jìn)行替換
        cls.__discount = new_discount

apple = Goods('蘋果',5)
print(apple.price)
Goods.change(0.5) #這里就不是使用apple.change()進(jìn)行修改了
print(apple.price)

上面只是簡單的列舉了class method的一種使用場景,后續(xù)如果有新的會(huì)持續(xù)更新本篇文章 2.既然@staticmethod和@classmethod都可以直接類名.方法名()來調(diào)用,那他們有什么區(qū)別呢

從它們的使用上來看,
@staticmethod不需要表示自身對象的self和自身類的cls參數(shù),就跟使用函數(shù)一樣。
@classmethod也不需要self參數(shù),但第一個(gè)參數(shù)需要是表示自身類的cls參數(shù)。

如果在@staticmethod中要調(diào)用到這個(gè)類的一些屬性方法,只能直接類名.屬性名或類名.方法名。
而@classmethod因?yàn)槌钟衏ls參數(shù),可以來調(diào)用類的屬性,類的方法,實(shí)例化對象等,避免硬編碼。
下面上代碼。

class A(object):  
    bar = 1  
    def foo(self):  
        print 'foo'  

    @staticmethod  
    def static_foo():  
        print 'static_foo'  
        print A.bar  

    @classmethod  
    def class_foo(cls):  
        print 'class_foo'  
        print cls.bar  
        cls().foo()  
###執(zhí)行  
A.static_foo()  
A.class_foo() 

知識(shí)點(diǎn)擴(kuò)展:python classmethod用法

需求:添加類對象屬性,在新建具體對象時(shí)使用該變量

class A():
 
    def __init__(self,name):
        self.name = name
        self.config = {'batch_size':A.bs}
    @classmethod
    def set_bs(cls,bs):
        cls.bs = bs
    def print_config(self):
        print (self.config)
 
A.set_bs(4)
a = A('test')
a.print_config()

以上就是python中的class_static的@classmethod的使用的詳細(xì)內(nèi)容,更多關(guān)于python classmethod使用的資料請關(guān)注腳本之家其它相關(guān)文章!

  • python合并多個(gè)excel的詳細(xì)過程

    python合并多個(gè)excel的詳細(xì)過程

    合并需求很多,常見的有相同數(shù)據(jù)結(jié)構(gòu),按行進(jìn)行縱向拼接,下面這篇文章主要給大家介紹了關(guān)于python合并多個(gè)excel的相關(guān)資料,需要的朋友可以參考下
    2022-10-10
  • python?numpy庫介紹

    python?numpy庫介紹

    這篇文章主要介紹了python?numpy庫,numpy是一個(gè)開源的python科學(xué)計(jì)算擴(kuò)展庫,主要用來處理任意維度數(shù)組和矩陣。相同的任務(wù),使用numpy比直接用python的基本數(shù)據(jù)結(jié)構(gòu)更加簡單高效,下面一起進(jìn)入文章了解更多詳細(xì)內(nèi)容吧
    2021-12-12
  • pandas.dataframe按行索引表達(dá)式選取方法

    pandas.dataframe按行索引表達(dá)式選取方法

    今天小編就為大家分享一篇pandas.dataframe按行索引表達(dá)式選取方法,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-10-10
  • 利用Pandas讀取文件路徑或文件名稱包含中文的csv文件方法

    利用Pandas讀取文件路徑或文件名稱包含中文的csv文件方法

    今天小編就為大家分享一篇利用Pandas讀取文件路徑或文件名稱包含中文的csv文件方法,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-07-07
  • python使用Word2Vec進(jìn)行情感分析解析

    python使用Word2Vec進(jìn)行情感分析解析

    這篇文章主要介紹了python使用Word2Vec進(jìn)行情感分析解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-07-07
  • 使用Python合并Excel文件中的多個(gè)Sheet的實(shí)現(xiàn)過程

    使用Python合并Excel文件中的多個(gè)Sheet的實(shí)現(xiàn)過程

    在Python中,可以使用pandas庫來處理Excel文件,將多個(gè)工作表(sheets)合并為一個(gè)工作表,以下是一個(gè)詳細(xì)的代碼示例,展示了如何實(shí)現(xiàn)這一功能,文中有相關(guān)的代碼供大家參考,需要的朋友可以參考下
    2024-10-10
  • Python詳解復(fù)雜CSV文件處理方法

    Python詳解復(fù)雜CSV文件處理方法

    這篇文章主要介紹了Python數(shù)據(jù)讀寫之Python讀寫CSV文件,CSV即逗號分隔值,一種以逗號分隔按行存儲(chǔ)的文本文件,所有的值都表現(xiàn)為字符串類型,文章圍繞主題展開詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,感興趣的小伙伴可以參考一下
    2022-07-07
  • python輸出100以內(nèi)的質(zhì)數(shù)與合數(shù)實(shí)例代碼

    python輸出100以內(nèi)的質(zhì)數(shù)與合數(shù)實(shí)例代碼

    本文通過實(shí)例代碼給大家介紹了python輸出100以內(nèi)的質(zhì)數(shù)與合數(shù)的方法,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友參考下吧
    2018-07-07
  • 最新評論

    沙洋县| 阜新市| 乌兰察布市| 长海县| 资兴市| 绥宁县| 汕尾市| 元阳县| 乡城县| 金阳县| 蒙阴县| 讷河市| 天镇县| 昌都县| 桂东县| 土默特左旗| 宣武区| 富源县| 利辛县| 离岛区| 屯昌县| 宣城市| 雷山县| 瑞安市| 文山县| 衡东县| 柯坪县| 宁波市| 长顺县| 山东| 社旗县| 基隆市| 上林县| 锦州市| 博白县| 绥德县| 安图县| 苍溪县| 大埔区| 建昌县| 固镇县|