在我正在阅读Python的书中,它继续使用代码 eval(input('blah'))
我阅读了文档,我理解它,但我仍然没有看到它如何改变input()功能.
它有什么作用?谁能解释一下?
我有一些代码的情况,eval()作为一种可能的解决方案.现在我从来没有使用eval()过,但是,我已经发现了很多关于它可能造成的潜在危险的信息.也就是说,我对使用它非常谨慎.
我的情况是我有一个用户给出的输入:
datamap = raw_input('Provide some data here: ')
Run Code Online (Sandbox Code Playgroud)
哪里datamap需要是字典.我四处搜索,发现eval()可以解决这个问题.我认为在尝试使用数据之前我可以检查输入的类型,这将是一个可行的安全预防措施.
datamap = eval(raw_input('Provide some data here: ')
if not isinstance(datamap, dict):
return
Run Code Online (Sandbox Code Playgroud)
我仔细阅读了文档,但我仍然不清楚这是否安全.eval在输入或datamap调用变量后立即评估数据吗?
该ast模块是.literal_eval()唯一安全的选择吗?
eval()Python中有一个函数我在玩游戏时偶然发现.我不能想到需要这个功能的情况,除了可能是语法糖.谁能举个例子?
如何转换"[(5, 2), (1,3), (4,5)]"为元组列表
[(5, 2), (1,3), (4,5)]
我使用的planetlab是不支持的shell "import ast".所以我无法使用它.