为什么我不能eval
使用__dict__
选项,例如:
>>> import os
>>> s = str( os.__dict__ )
>>> d = eval( s )
SyntaxError: invalid syntax
它通常用于在dict或list上转换str(),并向后eval。这是什么?
答案 0 :(得分:4)
如果你检查了你正在尝试eval
的字符串,你会发现它包含的内容
>>> str(os.getpid)
'<built-in function getpid>'
它们不是有效的Python表达式,因此它们不能eval
&#39; d。
以这种方式使用eval
不是&#34;无处不在&#34;。实际上eval
的使用几乎普遍是一种代码气味。