【发布时间】:2020-02-09 19:22:36
【问题描述】:
鉴于以下代码运行无误,为什么需要 staticmethod 装饰器?它实际上在做什么?
class Foo:
def say_hi(name):
print(f'Hello {name}.')
@staticmethod
def say_bye(name):
print(f'See ya later, {name}.')
my_name = 'Bar...t'
Foo.say_hi(my_name)
Foo.say_bye(my_name)
【问题讨论】:
-
没有装饰器,
say_bye将是一个实例方法。您是在问为什么首先存在静态方法? -
你的非静态方法需要一个 self 作为第一个参数。
标签: python python-3.x decorator