Mak*_*gan 4 python git branch git-branch
我正在努力想方设法在编程时更好地利用我的时间.
我有一个python脚本,可以完成一些繁重的工作(可能需要几个小时).现在,它所做的大部分工作都与网络有关,所以我有足够的cpu资源.
如果脚本是一个C二进制可执行文件,将gout checkout放到另一个分支上并做额外的工作就可以了,我甚至可以修改磁盘中的二进制文件,因为它已被复制到ram,所以直到它完成运行我不会影响程序输出.
但python脚本是翻译的,而不是编译的.如果我开始篡改源文件会发生什么,我可以破坏程序输出,还是将文本文件和相关的导入文件复制到RAM中,这样我就可以篡改源代码而不会有改变正在运行的程序行为的风险?
一般来说,如果您有一个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编,更新后的版本将被加载.
解决方法是将所有导入放在文件的顶部,无论如何您可能会这样做.
当 python 程序运行时,它compiled(有点,更像是翻译)成 .pyc 文件,然后由 python 解释器运行。当您更改文件时,如果代码已经在运行,则它不应影响代码。
这是一个相关的 stackoverflow 答案。如果我在 Python 脚本运行时修改它会发生什么?