eval向后打印__dict__语法错误:语法无效

时间:2014-08-11 13:48:56

标签: python eval

为什么我不能eval使用__dict__选项,例如:

>>> import os
>>> s = str( os.__dict__ )
>>> d = eval( s )
SyntaxError: invalid syntax

它通常用于在dict或list上转换str(),并向后eval。这是什么?

1 个答案:

答案 0 :(得分:4)

如果你检查了你正在尝试eval的字符串,你会发现它包含的内容

>>> str(os.getpid)
'<built-in function getpid>'

它们不是有效的Python表达式,因此它们不能eval&#39; d。

以这种方式使用eval不是&#34;无处不在&#34;。实际上eval的使用几乎普遍是一种代码气味。