Python 遍历名称空间
我的名称空间如下所示: 名称空间(aTQ=None,bE=None,bEQ=None,b=None,bQ=None,c=None, c=None,cJ=None,d=None,g=None,jR=['xx','015'],lC=None,l=None)Python 遍历名称空间,python,namespaces,Python,Namespaces,我的名称空间如下所示: 名称空间(aTQ=None,bE=None,bEQ=None,b=None,bQ=None,c=None, c=None,cJ=None,d=None,g=None,jR=['xx','015'],lC=None,l=None) 我如何遍历它,以便找到并替换“jR”键的“xx”值 我不确定您事先知道什么,(名称jR,或者只有一个名称具有而不是None值),但是您可以尝试使用vars(),它应该是一个dict,它的名称空间中的名称作为其键。所以如果你在某处有字符串'jR'
我如何遍历它,以便找到并替换“jR”键的“xx”值 我不确定您事先知道什么,(名称
jR
,或者只有一个名称具有而不是None
值),但是您可以尝试使用vars(),它应该是一个dict,它的名称空间中的名称作为其键。所以如果你在某处有字符串'jR'
vars()['jR'] = vars()['jR'][0]
同样,您可以使用名称空间来获得相同的dict
将留给您['xx','015']
中的第一个值作为jR
的唯一值
编辑:需要说明的是,由于vars()
和\uu dict\uuu
都返回dict,因此可以按如下方式对它们进行迭代:
for k in namespace.__dict__:
if namespace.__dict__[k] is not None:
<<do something>>
命名空间中的k的。\uuuu dict\uuuuu:
如果namespace.\uuuu dict\uuuu[k]不是无:
@martineau我以为我理解了他的问题,直到我看到了那句话;我原以为他指的是用于打包的文件名称空间,但blockquote似乎暗示他不是这个意思。@Sapphire_-Brick:从公认的答案来看,这不是OP的意思,而是在Python 3.3types
模块中添加了非常类似的内容,该模块名为a,其文档中写道“可用于替代类别NS:pass
”。