gpt4 book ai didi

python - 如何制作一个可以通过 my_dict.my_key 访问的字典?

转载 作者:行者123 更新时间:2023-11-30 22:46:29 26 4
gpt4 key购买 nike

通常,使用 my_dict.my_key 访问字典条目会很方便。而不是my_dict['my_key'] .

所以我想出了以下解决方案:

class ddict(dict):
def __init__(self, **kwargs):
dict.__init__(self, **kwargs)
for (k, v) in kwargs.items():
self.__dict__[k] = v

您可以将其用作:

    d = ddict(a = 1, b = 2)
print(d.a)
print(d.b)

这种方法安全吗?或者它会在某个时候咬我吗?是否有内置方法?

(为什么我想要这个?比字典或显式定义的类更容易输入并且看起来更好,但这不应该是这里的主题,因为这是品味和情况的问题。而且它是可迭代的。)

最佳答案

更好、更安全的方法是使用 _getattr_ (这是 Python 在使用 . 表示法时调用的方法,但请注意,这种方法仅允许字符串键(不是整数、 float 或任意对象):

class ddict(dict):
def __getattr__(self, item):
return self[item]

d = ddict()
d['a'] = 1
print(d.a)
>> 1

您还可以覆盖__setattr__,以便可以使用 .还有符号。

class ddict(dict):
def __getattr__(self, item):
return self[item]

def __setattr__(self, key, value):
self[key] = value

d = ddict()
d.a = 1
print(d.a)
>> 1

关于python - 如何制作一个可以通过 my_dict.my_key 访问的字典?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40862556/

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