【发布时间】:2016-05-31 03:43:58
【问题描述】:
我正在使用here提到的代码解决方案。
我是装饰器的新手,如果我想写如下内容,我不明白为什么这个解决方案不起作用:
@timeout(10)
def main_func():
nested_func()
while True:
continue
@timeout(5)
def nested_func():
print "finished doing nothing"
=> 这样的结果根本不会超时。我们将陷入无限循环。
但是,如果我从 nested_func 中删除 @timeout 注释,则会出现超时错误。
出于某种原因,我们不能同时在函数和嵌套函数上使用装饰器,知道为什么以及如何纠正它以使其正常工作,假设包含函数超时始终必须大于嵌套超时。
【问题讨论】:
标签: python python-2.7 python-decorators