我有3个decorator,希望分别将它们应用于一个函数,以创建3个不同版本的函数。例如:

@decorator_1
def foo1():
  blahblah

@decorator_2
@decorator
def foo2():
  blahblah

@decorator_3
def foo3()
  blahblah

foo1foo2foo3的内容完全相同。问题是我必须把函数写三遍。当然,我可以将blahblah放入另一个函数spam并在这三个函数中调用它。但我仍然需要创建3个单独的函数并调用spam3次。有没有更好的方法来进一步减少这种冗余?

最佳答案

def foo():
  blahblah

foo1 = decorator_1(foo)
foo2 = decorator_2(decorator(foo))
foo3 = decorator_3(foo)

10-05 22:04