- 被@staticmethod装饰器装饰的函数没有
self
参数, - 可以不生成类对象直接用类名调用被装饰的函数,与
__init__
函数无关 - 当然生成类对象再调用该函数也是可以的
示例如下:
class Test():
def __init__(a):
self.a = a
@staticmethod
def _print_beau():
print('beautiful')
@staticmethod
def _print_perf(arg1):
print(arg1)
print('perfect')
def _func(self, arg2):
self._print_perf(arg2):
# 类名调用
Test._print_beau()
# beautiful
Test._print_perf(1)
# 1
# perfect
# 类实例对象调用
test = Test(521)
test._print_beau()
# beautiful
test._print_perf(0)
# 0
# perfect
test._func(520)
# 520
# perfect