我不能用dot(.)访问字典键,但是当我定义一个从dict继承的类时,我可以使用dot(.)访问它的键。有人能解释一下吗?在
所以,当我运行代码时:
d = {'first_key':1, 'second_key':2}
d.first_key
我得到这个错误:
^{pr2}$
但当我运行这个:
class DotDict(dict):
pass
d = DotDict()
d.first_key = 1
d.second_key = 2
print(d.first_key)
print(d.second_key)
我明白了:
1
2
Tags:
在第一种情况下,您正在创建属于dictionary对象的键和值。而在第二个类中,您正在创建一个与继承的字典父类无关的类的属性。在
用你的例子
您可以将实例参数
^{pr2}$first_key
和second_key
设置为您的DotDict
类,而不是字典本身。如果您将字典内容显示在屏幕上,您可以看到:所以,它只是一个空的dict。你可以用普通的方法访问字典:
如果要访问
dict
元素,则需要通过keys
进行访问。在输出:
^{pr2}$如果要使用(.)访问,请使用
get
。在使用
get
可以获得所需的值输出:
^{pr2}$对于
class
,您正在访问class
的属性。所以您必须使用(。)相关问题 更多 >
编程相关推荐