【发布时间】:2012-06-23 19:49:17
【问题描述】:
我不知道这是一个简单的问题还是不可能的问题,但我在上面找不到任何东西,所以我想我会问它。
是否可以在循环仍在运行时从 while 循环返回值?基本上我想要做的是让一个向量在一个while循环中不断更新,但能够在不停止while循环的情况下在被询问时返回值。这可能吗?我只需要分解程序并将while循环放在一个单独的线程中,还是可以在一个函数中完成?
另外,我更喜欢一种计算量不高的方法(显然),并且与速率限制的 while 循环兼容,因为这个方法肯定是速率限制的。
同样,如果这是一个愚蠢的问题,请告诉我,我将删除它,但我无法找到相关文档。
我正在尝试使用以下代码实现此功能:
def update(self, x_motion, y_motion, z_motion):
self.x_pos += self.x_veloc
self.y_pos += self.y_veloc
self.z_pos += self.z_veloc
self.x_veloc += self.x_accel
self.y_veloc += self.y_accel
self.z_veloc += self.z_accel
self.x_accel = x_motion[2]
self.y_accel = y_motion[2]
self.z_accel = z_motion[2]
while True:
self.update(x_motion, y_motion, z_motion)
print vector.x_accel
至少是这样的。重要的是这些在 while 循环之外返回,以便 while 循环在后台运行,但它只在被询问时给出结果,或者类似的东西。
【问题讨论】:
-
您需要提供更多关于您正在尝试做的事情的细节,最好是一些示例代码。听起来生成器可以帮助您,但从您的描述中很难判断。
-
while 循环是否需要保持同时运行的操作?生成器可以暂停并返回一个值,然后在请求下一个值时从中断处恢复。但它确实在值之间暂停。
-
它可以暂停,我正在考虑这样做,但如果可能的话,我真的宁愿不暂停 while 循环。
标签: python while-loop real-time