我在多个地方多次看过这个,但从来没有找到令人满意的解释,为什么会出现这种情况.
所以,希望有人会在这里提出.为什么我们(至少一般)不使用exec()和eval()?
编辑:我看到人们假设这个问题与网络服务器有关 - 它没有.我可以看到为什么传递给unsanitized的字符串exec可能不好.在非网络应用程序中它是坏的吗?
我需要在Python中创建20个变量.这些变量都是需要的,它们最初应该是空字符串,空字符串稍后将被其他字符串替换.我不能在需要时根据需要创建变量,因为我还有一些if/else语句需要检查变量是否仍为空或已经等于其他字符串.
而不是写作
variable_a = ''
variable_b = ''
....
Run Code Online (Sandbox Code Playgroud)
我想到了类似的东西
list = ['a', 'b']
for item in list:
exec("'variable_'+item+' = '''")
Run Code Online (Sandbox Code Playgroud)
此代码不会导致错误,但仍然无法实现我所期望的 - 变量不是使用名称"variable_1"创建的,依此类推.
我的错误在哪里?
谢谢,Woodpicker