您好,登錄后才能下訂單哦!
這期內容當中小編將會給大家帶來有關什么是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的類方法和靜態方法了,如果剛好有類似的疑惑,不妨參照上述分析進行理解。如果想知道更多相關知識,歡迎關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。