類--面向對象 --statismethod和classmethod裝飾器的用法
阿新 • • 發佈:2017-08-16
color 調用 不同的 需要 spa 括號 style 自動 blog
1)classmethod
class Classmethod_demo:
def
class Classmethod: #定義類名 role=‘dog‘ @classmethod def func(cls): print(cls.role) Classmethod.func() classmethod裝飾器的作用就是讓你在類裏面可以調用類裏面的左右元素, 但是會用cls代替類名(Classmethod),[email protected] 下面的函數括號裏面會自動顯示cls,而在下面的print裏面還可以調用類方法,也就是相當於Classmethod.role。。。
2)staticmethod
class Chack: role=‘dog‘ @staticmethod def func(): print(Chack.role) Chack.func() [email protected],下面的func()括號裏就不會有self, 靜態方法,讓類裏面的方法可以直接調用,就像正常函數一樣,但是他不能在類裏面調用類名。
總結:classmethod 和staticmethod之間有相同也有不同
相同的是:他們都不需要對象實例化就可以調用
不同的是:classmethod、一個會在類裏面產生一個cls表示這個類,可以用cls調用內部的方法,而staticmethod是靜態的,在內部不會產生元素
所有調用不了類名。
類--面向對象 --statismethod和classmethod裝飾器的用法