如果在修改Python脚本时';她在跑步吗?

如果在修改Python脚本时';她在跑步吗?,python,Python,假设一个python脚本需要很长时间才能运行,如果在运行时修改它会发生什么?结果会有所不同吗?什么都没有,因为Python会将脚本预编译成PYC文件并启动该文件 但是,如果出现某种异常情况,您可能会得到一个稍微有点误导性的解释,因为第X行的代码可能与启动脚本之前的代码不同。不一定要写入文件。但是,如果在运行时重新启动,当新的pyc文件覆盖旧的pyc文件时,这会导致已经运行的程序出现问题吗?什么也不会发生。我还做了一个小测试。发生的情况:pyc只是编译文件。这个编译文件被加载到RAM中,然后执行。

假设一个python脚本需要很长时间才能运行,如果在运行时修改它会发生什么?结果会有所不同吗?

什么都没有,因为Python会将脚本预编译成PYC文件并启动该文件


但是,如果出现某种异常情况,您可能会得到一个稍微有点误导性的解释,因为第X行的代码可能与启动脚本之前的代码不同。

不一定要写入文件。但是,如果在运行时重新启动,当新的pyc文件覆盖旧的pyc文件时,这会导致已经运行的程序出现问题吗?什么也不会发生。我还做了一个小测试。发生的情况:pyc只是编译文件。这个编译文件被加载到RAM中,然后执行。因此,总是可以更改程序、重新编译并运行另一个实例,例如在不同的控制台中。@Chris我在一个控制台中启动了python脚本的一个实例。在运行时,我更改了两行代码,并在单独的控制台中启动了另一个实例。过了一会儿,我从第一个控制台返回了一个错误,关于启动后更改的两行代码!请help@Chris我想我知道这里发生了什么。如果在脚本运行时修改脚本并保存,并且在回溯读数中出现以前的版本错误,则会打开文件的当前版本,并使回溯看起来与启动时不同。我自己也看过好几次了。这个程序被加载到你的主内存中。如果更改源文件,则不会发生任何事情。想象一下CPU会从硬盘读取指令…@Felix:这叫做“就地执行”(XIP)。@Ignacio:有趣,我不知道。谢谢:)您可以动态地重新加载模块的代码,请注意Windows批处理文件确实执行到位,所以这不是一个假设性的问题,有些语言的行为就是这样的。