【发布时间】:2018-12-01 18:25:20
【问题描述】:
在 Python 中,有没有一种很好的方法可以将装饰器(或类似的东西)应用到函数体的子段而不是整个函数?
我想要的可能看起来像这样:
def deco_double(f):
def wrapper():
f()
f()
return wrapper
def foo():
@deco_double:
print("hello")
print("stack")
@deco_double:
print("overflow")
foo()
所以执行结果是这样的:
hello
stack
hello
stack
overflow
overflow
如果解决方案不完全是装饰器也没关系,我需要的是一种包装函数子段的方法,但要以一种很好的抽象方式。提前谢谢你:)
编辑: 仅仅分成多个功能对我来说不是一个选择。我正在为程序员开发一个框架,我希望他们以紧凑的方式编写函数(用于在示例中编写 foo()。另外,我实际所做的远比重复要复杂得多)
edit2: 到目前为止,我似乎别无选择,只能期望框架用户以某种方式声明命名函数......
【问题讨论】:
-
只是使用更多的功能。
-
你说分离成多个功能不是一种选择,然后在你接受的答案中你继续这样做。
标签: python decorator python-decorators