带计时器项的Python dict

带计时器项的Python dict,python,dictionary,timer,Python,Dictionary,Timer,我想创建一个带有计时器的dict条目。当条目计时器超时时,应调用函数对该条目进行处理。e、 g: dict = [key, timer] if timer == 0 f(key, timer) 有什么方法可以做到这一点。 非常感谢你的帮助。 当做 卡里姆你可以让你所有的价值观在一段时间后激发出来。这将使您的程序依赖于线程模块 或者,您可以有一个“计时器线程”,它每隔一段时间遍历字典中的所有元素并减少计数。如果它发现某个元素已减少到零,则应调用回调 如果您的字典依赖于“访问次数”,而不是

我想创建一个带有计时器的dict条目。当条目计时器超时时,应调用函数对该条目进行处理。e、 g:

dict = [key, timer]
if timer == 0
    f(key, timer)
有什么方法可以做到这一点。
非常感谢你的帮助。 当做
卡里姆

你可以让你所有的价值观在一段时间后激发出来。这将使您的程序依赖于线程模块

或者,您可以有一个“计时器线程”,它每隔一段时间遍历字典中的所有元素并减少计数。如果它发现某个元素已减少到零,则应调用回调


如果您的字典依赖于“访问次数”,而不是实际时间,那么您可能应该考虑捕获访问调用,并使用这些调用来增加和减少计数,而不是使用线程(即通过重新定义或包装
\uuuuuuu setitem\uuuuuuuuu
\uuu getitem\uuuuuuuu
).

您可以创建所有值,这些值将在给定的时间后激发。这将使您的程序依赖于线程模块

或者,您可以有一个“计时器线程”,它每隔一段时间遍历字典中的所有元素并减少计数。如果它发现某个元素已减少到零,则应调用回调


如果您的字典依赖于“访问次数”,而不是实际时间,那么您可能应该考虑捕获访问调用,并使用这些调用来增加和减少计数,而不是使用线程(即通过重新定义或包装
\uuuuuuu setitem\uuuuuuuuu
\uuu getitem\uuuuuuuu
).

@karim:您肯定应该看看事件驱动库,例如,或。例如,Gevent有一些类似于
Gevent.spawn_later(秒、函数、*args、**kwargs)
的东西,我认为这非常适合您的需要。您甚至可以无序生成函数

例如:

gevent.spawn_later(5, f1)
gevent.spawn_later(3, f2)

并且
f2
将在3秒后执行,然后
f1
2秒后执行。

@karim:您肯定应该查看事件驱动库,例如,或。例如,Gevent有一些类似于
Gevent.spawn_later(秒、函数、*args、**kwargs)
的东西,我认为这非常适合您的需要。您甚至可以无序生成函数

例如:

gevent.spawn_later(5, f1)
gevent.spawn_later(3, f2)
并且
f2
将在3秒后执行,然后
f1
2秒后执行