为什么这段代码不起作用?
from threading import Timer
def delayed(seconds):
def decorator(f):
def wrapper(*args, **kargs):
Timer(seconds, f, args, kargs)
return wrapper
return decorator
@delayed(1)
def foo():
'''this function does not return'''
print('foo')
foo()
print('dudee')
我除了这个结果: 哥们儿 富
我只有 哥们
最佳答案
因为你没有启动你的计时器,请尝试这样:
from threading import Timer
def delayed(seconds):
def decorator(f):
def wrapper(*args, **kargs):
t = Timer(seconds, f, args, kargs)
t.start()
return wrapper
return decorator
@delayed(1)
def foo():
print('foo')
foo()
print('dudee')
关于延迟调用函数的python装饰器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5205995/