溫馨提示×

溫馨提示×

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

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

什么是Python的類方法和靜態(tài)方法

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

這期內容當中小編將會給大家?guī)碛嘘P什么是Python的類方法和靜態(tài)方法,文章內容豐富且以專業(yè)的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。

類方法

類方法:是類對象所擁有的方法,需要用修飾器@classmethod來標識其為類方法,對于類方法,第一個參數(shù)必須是類對象,一般以cls作為第一個參數(shù)(當然可以用其他名稱的變量作為其第一個參數(shù),但是大部分人都習慣以’cls’作為第一個參數(shù)的名字,就最好用’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
中國

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

靜態(tài)方法

靜態(tài)方法:需要通過修飾器@staticmethod來進行修飾,靜態(tài)方法不需要多定義參數(shù)。

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

運行結果為:

china
china

總結:

實例方法:

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

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

類方法:

定義:使用裝飾器@classmethod。

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

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

靜態(tài)方法:

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

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

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

向AI問一下細節(jié)

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

AI