我试图覆盖全局变量,以便任何属性名 它不存在返回自身(名称字符串)。 这样做的原因是在eval中使用它来对c initilizer列表进行一些快速/快速的解析(当然是因为这样)。 我的代码:
class EvalGlobalsDict(dict):
def __getattr__(self, name):
if hasattr(self, name):
return super(EvalGlobalsDict, self).__getattr__(name)
else:
return name
eval_globals = EvalGlobalsDict(globals())
每当我试图评估一个不存在的名字,它会给我一个名字错误
^{pr2}$如果我直接打电话
eval("globals().__getattr__("dir")",eval_globals)
eval("globals().__getattr__("dir")",eval_globals)
即使是有效的属性,我也只获取attr name字符串。 我做错什么了?在
因为您是dict的子类化,所以需要重写
__getitem__
(索引访问器)。在印刷品
^{pr2}$相关问题 更多 >
编程相关推荐