class C(object):
# 靜态方法
@staticmethod
def f():
print('runoob')
class A(object):
bar = 1
def func1(self):
print ('foo')
# 類方法
@classmethod
def func2(cls):
print ('func2')
print (cls.bar)
cls().func1() # 調用 foo 方法
A.func2() # 不需要執行個體化
C.f() # 靜态方法無需執行個體化
c = C() # 也可以執行個體化後調用
c.f()
靜态方法: 類可以不用執行個體化就可以調用該方法 C.f(),當然也可以執行個體化後調用 C().f()
類方法: classmethod 修飾符對應的函數不需要執行個體化,不需要 self 參數,但第一個參數需要是表示自身類的 cls 參數,可以來調用類的屬性,類的方法,執行個體化對象等。