我有3个decorator,希望分别将它们应用于一个函数,以创建3个不同版本的函数。例如:
@decorator_1
def foo1():
blahblah
@decorator_2
@decorator
def foo2():
blahblah
@decorator_3
def foo3()
blahblah
foo1
、foo2
和foo3
的内容完全相同。问题是我必须把函数写三遍。当然,我可以将blahblah
放入另一个函数spam
并在这三个函数中调用它。但我仍然需要创建3个单独的函数并调用spam
3次。有没有更好的方法来进一步减少这种冗余? 最佳答案
def foo():
blahblah
foo1 = decorator_1(foo)
foo2 = decorator_2(decorator(foo))
foo3 = decorator_3(foo)