1. 程式人生 > 其它 >七、面向物件_10.類方法和靜態方法

七、面向物件_10.類方法和靜態方法

類方法

需要使用裝飾器 @classmethod 來標識其為類方法,第一個引數必須是類物件,一般以 cls 作為第一個引數
類方法使用場景:當方法中需要使用類物件(如訪問私有類屬性等)時,定義類方法
類方法一般配合類屬性使用

class Team(object):
    __champion = 40

    @classmethod
    def get_champion(cls):
        return cls.__champion

M = Team()
res = M.get_champion()
print(res)

40

靜態方法

需要使用裝飾器 @staticmethod 來標識其為靜態方法,靜態方法不需要傳遞例項物件或類物件(形參沒有self/cls)
靜態方法可以通過例項物件或類物件呼叫
靜態方法使用場景:當方法中既不需要使用例項物件(如例項屬性、例項方法),也不需要使用類物件(如類屬性、類方法)時
取消不必要的引數傳遞,減少不必要的記憶體佔用

class Team(object):
    @staticmethod
    def work():
        print('this is staticmethod')

M = Team()
M.work()
Team.work()

this is staticmethod
this is staticmethod