python-3.x - 如何将此超时和间隔转换为使用毫秒
问题描述
class Time:
_timers = {"cancel": []}
def __init__(self, int=None, func=None, *args, **kw):
self.int = int
self.func = func
self.args = args
self.kwargs = kw
self.id = uuid.uuid4().hex
self.mode = None
self.time = time.time()
def interval(self):
self.mode = "interval"
self._add()
def timeout(self):
self.mode = "timeout"
self._add()
def cancel(self):
do = True
for timer in self._timers['cancel']:
if timer.id == self.id:
do = False
if do:
self._timers['cancel'].append(self)
def _add(self):
self._timers[self.id] = self
def _cancel(self, id=None):
if id in self._timers:
del self._timers[id]
else:
if self.id in self._timers:
del self._timers[self.id]
def runall(self):
for id, timer_object in iter(self._timers.items()):
if id != "cancel":
now = (time.time() - timer_object.time) * 1000
if now == timer_object.int:
timer_object.func(*timer_object.args, **timer_object.kwargs)
if timer_object.mode == "interval":
timer_object.time = time.time_ns()
else:
timer_object.cancel()
for timer in self._timers['cancel']:
timer._cancel()
self._timers['cancel'] = []
timer = Time(
1000, #milliseconds
print, "1000 miliseconds"
)
它一直有效,直到添加了 time.sleep 是否有办法在睡眠完成后添加丢失的时间。我需要找到一种不同的方式来让循环休眠吗?当你不知道睡眠时,找到一种方法来计算错过的时间会很棒
解决方案
推荐阅读
- android - 使用 aws cloudfront 滑动,抛出 403 错误,但是当我使用 okhttp 发出请求时,我得到了正确的响应
- python - 如何将列添加到 numpy 数组
- flutter - 此函数的返回类型为“Row”,但不以 return 语句结尾
- javascript - select2 我不想从 json 中获取数据
- mysql - 如何在 Node/Express 中为数组的每次迭代发送 Post 请求?
- c# - 如何将 HTML 文本添加到工具提示 WPF
- javascript - childComponent中嵌套对象数组formik和handleChange的问题
- node.js - Nextjs如何在转到下一页时不卸载上一页(保持状态)
- asp.net - 如何使用asp.net 4.0在代码后面获取html chekbox
- python - 如何使用python循环在现有的csv文件中编写完整的字典