想象一下,运行一个python脚本需要很长时间,如果我在运行时修改它会发生什么?结果会不同吗?


当前回答

执行以下脚本:

from time import sleep

print("Printing hello world in: ")
for i in range(10, 0, -1):
    print(f"{i}...")
    sleep(1)
    
print("Hello World!")

然后将“Hello World!”更改为“Hello StackOverflow!”当它开始倒数时,它仍然会输出“Hello World”。

其他回答

没有,因为Python将脚本预编译为PYC文件并启动该文件。

但是,如果发生了某种异常,您可能会得到一个略微具有误导性的解释,因为行X的代码可能与启动脚本之前的代码不同。

这与你在问题中描述的略有不同,但它是有效的:

my_string = "Hello World!"

line = input(">>> ")
exec(line)

print(my_string)

测试运行:

>>> print("Hey")
Hey
Hello World!

>>> my_string = "Goodbye, World"
Goodbye, World

您可以动态地更改“加载”代码的行为。

不,结果将不反映保存后的更改。当运行常规的python文件时,结果不会改变。您必须保存更改并重新运行程序。

什么都没有发生。一旦脚本加载到内存中并运行,它将保持如下所示。

“自动重新加载”特性可以在代码中实现,就像Flask和其他框架一样。

不同。如果一个python脚本链接到其他修改过的文件,那么当然会加载更新的版本。但是如果源不指向任何其他文件,它就会运行缓存中的所有脚本,只要它运行。下次就能看到变化了…

如果关于自动应用更改,是的,@pcbacterio是正确的。它可以做thar,但脚本,它只记得最后的动作/事情是做什么,并检查当文件被修改重新运行它(所以它几乎不可见)

=]