是否可以在python中运行循环时手动更改/更新循环中的变量?



这是我愚蠢的问题:假设我们有一个简单的for循环,如下所示:

import time
for i in range(6):
x = i ** 1
time.sleep(5) #sleep for 5s
print(x)

当这个循环运行时(例如,在我们启动代码后的11秒),我们决定将x = i ** 1更改/更新为x = i ** 2,以获得新的x的输出。是否有任何方法可以做到这一点,即手动更新循环内的变量,而它正在运行(显然我们不想使用input)。

谢谢!

由于python默认是线程锁定的,所以如果不设计代码,就不能更改变量的值。然而,如果你正在使用线程(见这里的线程文档),你可以创建两个不同的线程,它们将并行地、异步地运行。通过访问相同的变量(需要在相同的作用域或全局),您可以在循环仍在运行时更改它。
然而,这样做不是最佳实践,因为大多数情况下,由于cpu如何处理它们的工作,您无法判断哪个操作将首先发生。