中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

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

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

什么是Python的類方法和靜態方法

發布時間:2020-08-25 14:00:09 來源:億速云 閱讀:124 作者:Leah 欄目:編程語言

這期內容當中小編將會給大家帶來有關什么是Python的類方法和靜態方法,文章內容豐富且以專業的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。

類方法

類方法:是類對象所擁有的方法,需要用修飾器@classmethod來標識其為類方法,對于類方法,第一個參數必須是類對象,一般以cls作為第一個參數(當然可以用其他名稱的變量作為其第一個參數,但是大部分人都習慣以’cls’作為第一個參數的名字,就最好用’cls’了),能夠通過實例對象和類對象去訪問。

class Person(object):
    country = "china"
    @classmethod
    def getCountry(cls):
        return cls.country
p = Person()
print(p.getCountry()) #正確,實例對象可以調用類方法
print(Person.getCountry())

運行結果為:

china
china

類方法還有一個用途就是可以對類屬性進行修改:

class Person(object):
    country = "china"
    @classmethod
    def getCountry(cls):
        return cls.country
    @classmethod
    def setCountry(cls,newCountry):
        cls.country = newCountry
p = Person()
print(p.getCountry()) #正確,實例對象可以調用類方法
print(Person.getCountry())
     
p.setCountry("CHINA")
print(p.getCountry())
Person.setCountry("中國")
print(Person.getCountry())

運行結果為:

china
china
CHINA
中國

結果顯示在用類方法對類屬性修改之后,通過類對象和實例對象訪問都發生了改變。

靜態方法

靜態方法:需要通過修飾器@staticmethod來進行修飾,靜態方法不需要多定義參數。

class Person(object):
    country = "china"
    @staticmethod
    def getCountry():
        return Person.country
p = Person()
print(p.getCountry())
print(Person.getCountry())

運行結果為:

china
china

總結:

實例方法:

定義:第一個參數必須是實例對象,該參數名一般約定為“self”,通過它來傳遞實例的屬性和方法(也可以傳類的屬性和方法);

調用:只能由實例對象調用。

類方法:

定義:使用裝飾器@classmethod。

第一個參數必須是當前類對象,該參數名一般約定為“cls”,通過它來傳遞類的屬性和方法(不能傳實例的屬性和方法);

調用:實例對象和類對象都可以調用。

靜態方法:

定義:使用裝飾器@staticmethod。參數隨意,沒有“self”和“cls”參數,但是方法體中不能使用類或實例的任何屬性和方法;

調用:實例對象和類對象都可以調用。

上述就是小編為大家分享的什么是Python的類方法和靜態方法了,如果剛好有類似的疑惑,不妨參照上述分析進行理解。如果想知道更多相關知識,歡迎關注億速云行業資訊頻道。

向AI問一下細節

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

AI

临海市| 怀化市| 五寨县| 敦煌市| 宜丰县| 阳城县| 崇仁县| 镇平县| 五寨县| 五大连池市| 仁化县| 旅游| 抚宁县| 驻马店市| 宜兴市| 松滋市| 宣汉县| 邵武市| 抚远县| 乳源| 光山县| 乌鲁木齐市| 淮北市| 盐边县| 庐江县| 梁山县| 木里| 房产| 凤阳县| 翼城县| 平乡县| 正定县| 长兴县| 呼和浩特市| 怀集县| 万宁市| 浦东新区| 原阳县| 西城区| 科尔| 平遥县|