gpt4 book ai didi

Python:我应该使用 eval、exec 还是 ..?

转载 作者:太空狗 更新时间:2023-10-30 02:23:16 25 4
gpt4 key购买 nike

我试图让下面的语句更灵活:

for posting in page.findAll(attrs = {"id": re.compile(r'''post\d+''')}):

以下部分是从 CSV 文件中动态检索并存储在字符串中(例如名为 test 的字符串)。 CSV 存储在安全位置,仅供管理员访问。

attrs = {"id": re.compile(r'''post\d+''')}

我可以通过使用 eval(test) 或 exec(test) 而不是仅仅测试来集成变量,如下所示吗?

for posting in page.findAll(test)):

最佳答案

如果你想从用户输入(文件内容是输入)运行代码,你需要 evalexec,通过这些名称或其他名称(具体来说,你需要 exec 语句 - 赋值是一个语句)。

但是你不想(也不应该)这样做,因为那是邪恶的、不安全的、完全没有必要的等等。放弃赋值(只存储字典)和re.compile 调用,然后你可以在上面使用 ast.literal_eval 并且你很安全(你仍然应该捕获语法错误和其他所有可能出错的地方以显示合理的错误消息,但恶意代码应该几乎是不可能的,而且它几乎没有那么脏)。如果需要,您可以在加载后应用 re.compile

关于Python:我应该使用 eval、exec 还是 ..?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5019264/

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