欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Python入門之實(shí)例方法、類方法和靜態(tài)方法的區(qū)別講解

 更新時(shí)間:2023年10月08日 11:05:46   作者:Le0v1n  
這篇文章主要介紹了Python入門之實(shí)例方法、類方法和靜態(tài)方法的區(qū)別講解,實(shí)例方法是在創(chuàng)建了類的實(shí)例之后才能被調(diào)用的方法,類方法是在不需要?jiǎng)?chuàng)建類的實(shí)例的情況下就可以調(diào)用的方法,最后,靜態(tài)方法是與類和類的實(shí)例都沒(méi)有綁定關(guān)系的方法,需要的朋友可以參考下

1. 例子

class Dog:
    # 定義類變量(類屬性)
    dogbook = {"黃色": 30, "黑色": 20, "白色": 0}
    def __init__(self, name, color, weight) -> None:
        self.name = name
        self.color = color
        self.weight = weight
        if self.color in self.dogbook:
            self.dogbook[self.color] += 1
        else:
            self.dogbook[self.color] = 1
    # 定義實(shí)例方法(定義時(shí),必須把self作為第一個(gè)參數(shù)),該方法可以訪問(wèn)實(shí)例變量(屬性)。調(diào)用時(shí)必須通過(guò)實(shí)例名來(lái)調(diào)用,不能通過(guò)類名來(lái)調(diào)用
    def bark(self):
        print(f"{self.name} is barking!")
    # 定義類方法(定義時(shí),必須把cls作為第一個(gè)參數(shù))。該方法可以訪問(wèn)類變量(屬性),可以通過(guò)實(shí)例名來(lái)調(diào)用,也可以通過(guò)類名來(lái)調(diào)用
    @classmethod
    def dog_num(cls):
        num = 0
        for val in cls.dogbook.values():
            num += val
        return num
    """
        定義靜態(tài)方法(定義式,不需要把self和cls作為第一個(gè)參數(shù))。靜態(tài)方法就是普通的函數(shù),它對(duì)類和實(shí)例都一無(wú)所知。
        不能訪問(wèn)類變量,也不能訪問(wèn)實(shí)例變量。可以通過(guò)實(shí)例名來(lái)調(diào)用,也可以通過(guò)類名來(lái)調(diào)用
        靜態(tài)方法寫在類外面也是可以的,寫在類里面只是因?yàn)檫@個(gè)函數(shù)和類有一定的關(guān)系,邏輯上更加易懂!
    """
    @staticmethod
    def total_weights(形參):
        total = 0
        for val in 形參:
            total += val.weight
        return total
if __name__ == "__main__":
    print(f"共有 {Dog.dog_num()} 條狗")
    dog_1 = Dog(name="大黃", color="黃色", weight=10)
    dog_1.bark()
    print(f"共有 {Dog.dog_num()} 條狗")
    try:
        Dog.bark()
    except:
        print("不能通過(guò)類名調(diào)用實(shí)例方法!")
    dog_2 = Dog(name="旺財(cái)", color="灰色", weight=8)
    dog_2.bark()
    print(f"共有 {Dog.dog_num()} 條狗")
    print(f"狗的重量為: {Dog.total_weights(形參=[dog_1, dog_2])}")

運(yùn)行結(jié)果:

共有 50 條狗
大黃 is barking!
共有 51 條狗
不能通過(guò)類名調(diào)用實(shí)例方法!
旺財(cái) is barking!
共有 52 條狗
狗的重量為: 18

2. 說(shuō)明

名稱裝飾器定義是否可以訪問(wèn)實(shí)例變量實(shí)例名調(diào)用類名調(diào)用
實(shí)例方法無(wú)必須把self作為第一個(gè)參數(shù)×
類方法@classmethod必須把cls作為第一個(gè)參數(shù)
靜態(tài)方法@staticmethod等價(jià)于普通函數(shù)×

3. 注意事項(xiàng)

  • 默認(rèn)創(chuàng)建的方法都是實(shí)例方法
  • 類方法在創(chuàng)建時(shí)第一個(gè)參數(shù)必須是cls,不能缺省
  • 靜態(tài)方法不可以傳入self,會(huì)報(bào)錯(cuò)(因?yàn)殪o態(tài)方法本質(zhì)上就是普通的函數(shù),傳入的self會(huì)被認(rèn)為是一個(gè)形參)!

4. 總結(jié)

總的來(lái)說(shuō)

  • 實(shí)例方法適用于需要類的每個(gè)實(shí)例共享的操作;
  • 類方法用于需要在不創(chuàng)建類實(shí)例的情況下執(zhí)行操作的情況;
  • 而靜態(tài)方法則適用于不需要訪問(wèn)類或?qū)嵗臄?shù)據(jù)的情況。

要理解這三種方法的區(qū)別和何時(shí)使用它們,是Python類編程的基本技巧之一。

到此這篇關(guān)于Python入門之實(shí)例方法、類方法和靜態(tài)方法的區(qū)別講解的文章就介紹到這了,更多相關(guān)實(shí)例方法、類方法和靜態(tài)方法區(qū)別內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Django模板導(dǎo)入母版繼承和自定義返回Html片段過(guò)程解析

    Django模板導(dǎo)入母版繼承和自定義返回Html片段過(guò)程解析

    這篇文章主要介紹了Django模板導(dǎo)入母版繼承和自定義返回Html片段過(guò)程解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-09-09
  • python tkinter基本屬性詳解

    python tkinter基本屬性詳解

    這篇文章主要介紹了python tkinter基本屬性詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-09-09
  • Python連接mysql數(shù)據(jù)庫(kù)的正確姿勢(shì)

    Python連接mysql數(shù)據(jù)庫(kù)的正確姿勢(shì)

    這篇文章主要為大家詳細(xì)介紹了Python連接mysql數(shù)據(jù)庫(kù)的正確姿勢(shì),如何使用Python連接mysql數(shù)據(jù)庫(kù),本文為大家揭曉,感興趣的小伙伴們可以參考一下
    2016-02-02
  • Python中使用Opencv開(kāi)發(fā)停車位計(jì)數(shù)器功能

    Python中使用Opencv開(kāi)發(fā)停車位計(jì)數(shù)器功能

    這篇文章主要介紹了Python中使用Opencv開(kāi)發(fā)停車位計(jì)數(shù)器,本教程最好的一點(diǎn)就是我們將使用基本的圖像處理技術(shù)來(lái)解決這個(gè)問(wèn)題,沒(méi)有使用機(jī)器學(xué)習(xí)、深度學(xué)習(xí)進(jìn)行訓(xùn)練來(lái)識(shí)別,感興趣的朋友跟隨小編一起看看吧
    2022-04-04
  • pytorch加載自定義網(wǎng)絡(luò)權(quán)重的實(shí)現(xiàn)

    pytorch加載自定義網(wǎng)絡(luò)權(quán)重的實(shí)現(xiàn)

    今天小編就為大家分享一篇pytorch加載自定義網(wǎng)絡(luò)權(quán)重的實(shí)現(xiàn),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-01-01
  • Python?encode()方法和decode()方法詳解

    Python?encode()方法和decode()方法詳解

    encode() 方法為字符串類型(str)提供的方法,用于將 str 類型轉(zhuǎn)換成 bytes 類型,這個(gè)過(guò)程也稱為“編碼”,這篇文章主要介紹了Python?encode()方法和decode()方法,需要的朋友可以參考下
    2022-12-12
  • selenium+python自動(dòng)化78-autoit參數(shù)化與批量上傳功能的實(shí)現(xiàn)

    selenium+python自動(dòng)化78-autoit參數(shù)化與批量上傳功能的實(shí)現(xiàn)

    這篇文章主要介紹了selenium+python自動(dòng)化78-autoit參數(shù)化與批量上傳,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-03-03
  • python批量實(shí)現(xiàn)Word文件轉(zhuǎn)換為PDF文件

    python批量實(shí)現(xiàn)Word文件轉(zhuǎn)換為PDF文件

    這篇文章主要為大家詳細(xì)介紹了python批量實(shí)現(xiàn)Word文件轉(zhuǎn)換為PDF文件的方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-03-03
  • python簡(jiǎn)單實(shí)現(xiàn)AES加密和解密

    python簡(jiǎn)單實(shí)現(xiàn)AES加密和解密

    這篇文章主要為大家詳細(xì)介紹了python簡(jiǎn)單實(shí)現(xiàn)AES加密和解密,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-03-03
  • Python生成隨機(jī)數(shù)組的方法小結(jié)

    Python生成隨機(jī)數(shù)組的方法小結(jié)

    這篇文章主要介紹了Python生成隨機(jī)數(shù)組的方法,結(jié)合實(shí)例形式總結(jié)分析了Python使用random模塊生成隨機(jī)數(shù)與數(shù)組操作相關(guān)技巧,需要的朋友可以參考下
    2017-04-04

最新評(píng)論