免责声明:是的我知道我的建议是疯狂的,我有一个非常特殊的(ab)用例。
在特定的exec中,我希望字典文字计算为有序字典,因此我可以保留exec'd代码中的原始排序。
我尝试在exec之前替换__builtin __。dict(之后非常小心地恢复它),但这不会影响dict文字,只会影响dict调用本身。
>>> import __builtin__
>>> __builtin__.dict = list
>>> exec "a={}"
>>> a
{}
>>> exec "a=dict()"
>>> a
[]
显然有dis模块,但那是从轨道进入的网站的核心。
我是否还有其他方式可以参与dict文字的评估并改变发生的事情?
P.S。对于Python2.6
答案 0 :(得分:1)
我建议您查看ast模块,您可以使用ast.parse
给定代码,并使用相应的构造函数调用替换每个ast.Dict
条目。
(但是,抱歉,您似乎想要一些非常奇怪的东西。)