延迟调用函数的python装饰器

标签 python timer

为什么这段代码不起作用?

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/

相关文章:

javascript - 计数器不断重置为 setInterval 循环上声明的变量

c - 什么触发了 0x08 中断?

python - Google http ://maps. google.com/maps/geo 非英文字符查询

java - 如何使用Camel Apache计时器组件

python - 如果名称在列中出现超过 n 次,则 Pandas 过滤器

java - 将后端代码(Java、Python)与 HTML 集成

c# - 单线程定时器

java - 我想在不同的类中使用我的计数器,但它显示为零的初始值

Linux 上的 Python SQLAlchemy 内存泄漏

python - 为什么我的代码 'next()' 函数在这个例子中没有被调用?