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