@staticmethod
- 基础
class C(object):
@staticmethod
def f():
print('runoob');
C.f(); # 静态方法无需实例化
cobj = C()
cobj.f() # 也可以实例化后调用
- 进阶【staticmethod 参数要求是 Callable, 也就是说 Class 也是可以的】
class C1(object):
@staticmethod
class C2(object):
def __init__(self, val = 1):
self.val = val
def shout(self):
print("Python世界第%d!"%self.val)
tmp = C1.C2(0)
print(type(tmp)) # 输出 : <class '__main__.C1.C2'>
tmp.shout() # 输出 : Python世界第0!