python中的類方法(classmethod)與靜態方法(staticmethod)
阿新 • • 發佈:2019-01-28
任何一種型別的方法,都可以用類或者物件來呼叫
那什麼時候使用物件方法,什麼時候使用類方法和靜態方法?
- 在絕大部分情況下,我們的方法都會宣告成 物件方法
- 如果我們希望用類來處理這個方法,或者不希望某一個屬性值不因為物件 而改變的時候,就可以用類方法
- 靜態方法的使用絕大部分都可以用例項方法或者類方法來替代
class People(object): # 類屬性 count = 0 size = 0 def __init__(self, name='', age=''): # 物件屬性 self.name = name self.age = age # 物件方法 def say(self): print('hai') # 類方法 @classmethod def classFun(cls): print('Hello,我是類方法') # 靜態方法 @staticmethod # 不需要指定self或者cls來呼叫 def method(): print('我是靜態方法') People.classFun() # Hello,我是類方法 People.method() # 我是靜態方法 p1 = People() p1.classFun() # Hello,我是類方法 p1.method() # 我是靜態方法 p1.say() # hai People.say(p1) # hai People.say(People()) # hai