gpt4 book ai didi

python - Python 中的自变形代码可能吗?

转载 作者:太空宇宙 更新时间:2023-11-04 10:19:16 25 4
gpt4 key购买 nike

在morph.py文件中写入如下代码:

with open("morph.py", "r+") as f:
old = f.read() # read everything in the file
f.seek(0,2) # rewind
f.write("1") # write the new line before
a="BAD"
a1="Worked"
print a

想法是重写 morph.py 文件,并打印文本“Worked”。

事实并非如此,我认为这与 Python 解释器加载文件的方式有关。唯一有意义的是加载整个文件,然后运行。

有人能解释一下吗?甚至可以在 Python 中使用自变形代码吗?

部分相关问题: Self decompressing and executing code in python

最佳答案

不是您尝试的方式。

在 Python 开始执行任何一段代码之前,它会将其编译成字节码表示形式,这比逐行读取要快得多。这意味着在 Python 编译文件后,对文件的任何更改都不会反射(reflect)在当前运行的代码中。

但是,您可以使用compileexeceval 从字符串中手动加载代码。您可以使用它来创建一个程序,该程序传递自己的源代码,更改并返回它,然后执行修改后的源代码。

关于python - Python 中的自变形代码可能吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33333757/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com