我在一个类中有以下代码:
def __setattr__(self, key, value):
self.__dict__['d'][key] = value
...
self.saveToIni()
该saveToIni
函数在每个对象调用时将所有 dict 的项目保存到一个 ini 文件中setattr
。如果在最后 120 毫秒内进行了 80setattr
次调用,那么每次都会从头开始写入文件。该函数还命令并有时从字典中删除数据,所以我不想更改它。
我想将调用限制为一次,比如说 5 秒:
- 当第一个
setattr
被触发时,一个定时器异步启动,仍然没有运行saveToIni
。 - 如果进行了任何调用
setattr
并且计时器仍在计数,则它既不会触发计时器也不会运行saveToIni
。 - 当计时器超时时,
saveToIni
应该启动。
现在,我不确定如何实现这种行为。我曾想过弄乱线程,但仍然没有找到如何去做的想法。