运行python脚本并更改git分支

Mak*_*gan 4 python git branch git-branch

我正在努力想方设法在编程时更好地利用我的时间.

我有一个python脚本,可以完成一些繁重的工作(可能需要几个小时).现在,它所做的大部分工作都与网络有关,所以我有足够的cpu资源.

如果脚本是一个C二进制可执行文件,将gout checkout放到另一个分支上并做额外的工作就可以了,我甚至可以修改磁盘中的二进制文件,因为它已被复制到ram,所以直到它完成运行我不会影响程序输出.

但python脚本是翻译的,而不是编译的.如果我开始篡改源文件会发生什么,我可以破坏程序输出,还是将文本文件和相关的导入文件复制到RAM中,这样我就可以篡改源代码而不会有改变正在运行的程序行为的风险?

Rob*_*eno 7

一般来说,如果您有一个Python文件作为脚本运行,那么你没问题.当您运行该文件时,它将被编译为字节码,然后执行该字节码.您可以在此时更改原始脚本,并且不会中断.

但是,我们可以通过编写一些可怕但合法的代码来故意破坏它:

horrible.py:

from time import sleep


sleep(10)
import silly
silly.thing()
Run Code Online (Sandbox Code Playgroud)

silly.py:

def thing():
    print("Wow!")
Run Code Online (Sandbox Code Playgroud)

您可以运行horrible.py并在运行时可以silly.py在磁盘上进行编辑以使其执行其他操作.当silly.py终于import编,更新后的版本将被加载.

解决方法是将所有导入放在文件的顶部,无论如何您可能会这样做.


Pet*_*erH 6

当 python 程序运行时,它compiled(有点,更像是翻译)成 .pyc 文件,然后由 python 解释器运行。当您更改文件时,如果代码已经在运行,则它不应影响代码。

这是一个相关的 stackoverflow 答案。如果我在 Python 脚本运行时修改它会发生什么?