我正在努力寻找更好地利用编程时间的方法。
我有一个 python 脚本可以完成一些繁重的工作(可能需要数小时)。现在,它所做的大部分工作都与网络相关,所以我有足够的 CPU 资源可以使用。
如果脚本是一个 C 二进制可执行文件,将 git checkout 到不同的分支并做额外的工作会很好,我什至可以修改磁盘中的二进制文件,因为它已被复制到 ram,所以直到它完成运行我不会影响程序输出。
但是 python 脚本是翻译的,而不是编译的。如果我开始篡改源文件会发生什么情况,我是否可以破坏程序输出,或者文本文件和相关导入是否已复制到 RAM,从而允许我篡改源文件而没有改变正在运行的程序行为的风险?
最佳答案
一般来说,如果您有一个作为脚本运行的 Python 文件,就没问题。当你运行这个文件时,它被编译成字节码然后被执行。此时您可以更改原始脚本,不会出现任何中断。
但是,我们可以故意通过编写一些可怕但合法的代码来打破它:
horrible.py
:
from time import sleep
sleep(10)
import silly
silly.thing()
silly.py
:
def thing():
print("Wow!")
您可以运行 horrible.py
并且在它运行时您可以编辑磁盘上的 silly.py
以使其执行其他操作。当 silly.py
最终被 import
时,将加载更新的版本。
解决方法是将所有导入放在文件顶部,无论如何您都可能这样做。
关于python - 运行 python 脚本并更改 git 分支,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53637368/