我有一个Python脚本,它将现有文件导入模块所在的同一目录中。写入文件,然后使用导入执行它与exec()
有何不同?安全吗?
下面是一个例子来说明我所说的:
import example
examplefile = open("example.py", "w")
exampletext = "def examplefunction():\n\tprint('This is an example!')\n\treturn"
examplefile.write(exampletext)
examplefile.close()
example.examplefunction()
不,它并不比使用
exec()
更安全。导入和exec()
都将文本编译成字节码,然后执行字节码。生成的字节码将完全相同。你知道吗唯一的区别是可以为磁盘上的文件创建
.pyc
字节码缓存文件,而exec()
每次都会重新编译文本。如果只生成一次文件,然后跨Python调用导入它,那么将文件写入磁盘将受益于该缓存。你知道吗相关问题 更多 >
编程相关推荐