gpt4 book ai didi

python - 扁平化变量层次结构

转载 作者:太空宇宙 更新时间:2023-11-04 01:30:18 26 4
gpt4 key购买 nike

我有一个变量层次结构,比如

a.b.c.d1
a.b.c.d2
a.b.c.d3
a.b.c.d4

现在我想将它们全部放入本地命名空间:

d1=2
d2=3
...

我怎样才能做到这一点?

最佳答案

实际上你可以通过类似字典的方式访问 Python 中对象的所有字段,只要它是一个新样式的类,即该类直接或间接继承 object

让我们将层次结构降低到一个级别,就像@unutbu 提议的那样。那么一个解决方案是:

class A(object):
d0 = 0
def __init__(self):
self.d1 = 1
self.d2 = 2
self.d3 = 3
self.d4 = 4

a = A()

for k in a.__dict__:
print k, a.__dict__[k]
globals()[k] = a.__dict__[k]

print d1, d2, d3, d4
print d0

这给了我们作为输出:

d4 4
d2 2
d3 3
d1 1
1 2 3 4
Traceback (most recent call last):
File "/../stackoverflow/14267654.py", line 24, in <module>
print d0
NameError: name 'd0' is not defined

这意味着:新型类的实例变量可以通过特殊的a.__dict__ 字段访问。可以在 globals() 返回的字典中设置全局变量。将这些结合在一起,您就有了解决方案。

关于python - 扁平化变量层次结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14267654/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com