为什么我们可以为OrderedDict的对象创建属性,但不能为Dict创建属性?

问题描述 投票:0回答:1

[阅读某些代码时,我发现可以为OrderedDict的对象创建新属性,但是当我尝试为Python的Dict创建对象时,Python不允许我这样做。

只是想知道为什么会这样,为什么会这样,以便当他们可以使用OrderedDict设置键值对时想要为OrderedDict创建属性。

python ordereddictionary ordereddict
1个回答
0
投票

OrderedDict在Python中实现,您可以将任何属性分配给传统的Python对象(有一些例外,例如定义OrderedDict时)。注意:这并不意味着您应该这样做,或者这通常不是一个好主意,但是有可能。特别是我看不到任何正当理由用__slots__来做到这一点。

OrderedDict相反,是一个内置对象,用C实现。它没有自己的dict来存储属性,这就是为什么您不能分配它们的原因。

© www.soinside.com 2019 - 2024. All rights reserved.