Python:exec 总是不好的做法吗?如果是,为什么不弃用

标签 python python-exec

<分区>

有人能想出一个使用 exec 的良好实践示例吗?

如果总有一种更高效、更安全的方法来替代 exec,为什么 python 不反对 exec?

最佳答案

other 中所述questions , eval/exec 被认为是不好的做法,因为它们通常被滥用来执行不需要它们的任务,从而导致潜在的安全问题问题和普遍糟糕的编程。

但是,这些机制有一些有效用途,并且它们公开了其他地方不可用的重要功能 - 在运行时执行任意代码。

例如,假设您想要编写一个可以 self 更新的应用程序。您可以从使用 exec 运行的远程 URL 获取脚本并将您的应用程序更新到最新版本。虽然这样做本身会带来很大的安全隐患,但通过使用数字签名确保流程安全并不难。

您可以在 code module 中找到另一个常见用途source : 在运行时执行用户输入的代码以进行调试。

关于Python:exec 总是不好的做法吗?如果是,为什么不弃用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21553641/

相关文章:

Python 3 : write method vs. os.write 返回的字节数

python - 多处理池 'apply_async' 似乎只调用一次函数

python - 如何在 Python 中安全地使用 exec()?

python - 如果嵌套在函数中,listcomp 无法访问 exec 调用的代码中定义的局部变量

python - 为什么指定局部变量时 Python 3 exec() 会失败?

Python Pandas Timeseries 如何找到值高于特定值的最大序列

python - 使用 Scopus API 从 Scopus 获取作者的文章(AUTHENTICATION_ERROR)

python - 如何使用 spaCy (nlp.pipe) 进行预处理来解决大型数据集性能缓慢的问题

python - 在焕然一新的 Python 环境中以编程方式从 Python 内部执行 Python 文件