Python @classmethod和@staticmethod裝飾器使用介紹


@classmethod@staticmethod裝飾器使用介紹

by:授客 QQ1033553122

 

簡介

靜態方法:類中用 @staticmethod裝飾的不帶 self 參數的方法。類的靜態方法可以直接使用類名調用。

 

類方法: 默認有個cls參數,可以被類和對象調用,需要加上 @classmethod裝飾器

 

普通方法: 默認有個self參數,且只能被對象調用。

 

代碼

classDotaGame:

top_score = 0

 

def__init__(self, name):

self.name = name

 

@staticmethod

defprint_game_rules():

print("游戲規則:1 xxxx游戲規則1 \n 2 xxxx游戲規則2")

 

@classmethod

defprint_store(cls):

print("歷史最高分: %s" % cls.top_score)

 

defprint_game_name(self):

print('開始 %s 游戲' % self.name)

 

DotaGame('dota').print_game_name()

 

DotaGame.print_store()

 

DotaGame.print_game_rules()

運行結果:

開始dota游戲

歷史最高分: 0

游戲規則:1 xxxx游戲規則1

 2 xxxx游戲規則2

 

結論

1、對於不需要訪問類實例屬性,類實例方法,和類屬性的函數定義成靜態函數

 

2、對於需要訪問類屬性的定義成類函數

 

3、對於需要訪問實例屬性、實例方法的定義成實例函數


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM