gpt4 book ai didi

python - 如何在Python中动态访问字典属性?

转载 作者:行者123 更新时间:2023-12-01 02:14:29 25 4
gpt4 key购买 nike

您将如何将字典编辑为对象属性?现在我有一个类,看起来像这样:

class Generic_class(object):
def __init__(self):
self.attr1 = default_dict.copy()
self.attr2 = default_dict.copy()
self.attr3 = default_dict.copy()
self.attr4 = default_dict.copy()
...

我(尝试)这样做,以便我可以将字典作为此类实例的一部分进行访问,最终可能会出现数百个不同的实例。我希望能够动态访问属性,因为要访问的属性是由程序在运行时检索的数据确定的。这些词典也可能会被编辑数百次,所以像

attr_name = 'This is dynamic'
instance_dict = default_dict.copy()
instance_dict['a key'] = 'value'
setattr(x, attr_name, instance_dict)

不会工作,因为我需要保留以前的编辑。由于我需要动态访问属性,因此我无法使用 x.y['key] = 'value' ,但我无法使用 setattr() 编辑字典所以我不知道该怎么办。

最佳答案

你会想要在抽象中“升级”。这数百个字典应该全部作为存储在一个外部字典中。当属性名称来自数据时,根本不要使用属性 - 使用键。

所以不是这样:

attr1 -> dict1
attr2 -> dict2
attrn -> dictn

你将会得到这个:

myattr ->  {key1: dict1,
key2: dict2,
keyn: dictn}

关于python - 如何在Python中动态访问字典属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48455889/

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