python - 为什么我们可以为 OrderedDict 的对象创建属性,但不能为 Dict 创建属性?
问题描述
在阅读一些代码时,我发现可以为 OrderedDict 的对象创建新属性,但是当我尝试为 Python 的 Dict 创建一个属性时,Python 不允许我这样做。
只是想知道为什么会发生这种情况,以及为什么当他们可以使用 OrderedDict 设置键值对时想要为 OrderedDict 创建属性。
解决方案
OrderedDict
是在 Python 中实现的,您可以将任何属性分配给传统的 Python 对象(有一些例外,例如何时__slots__
定义)。注意:这并不意味着您应该这样做,或者这通常是一个好主意,但这是可能的。特别是,我认为没有任何正当理由使用OrderedDict
.
dict
相反,它是一个内置对象,并且是用 C 语言实现的。它没有自己__dict__
的属性来存储属性,这就是为什么你不能分配它们的原因。
推荐阅读
- ajax - Ajax 和 ASP.NET MVC- 获取页面 URL,而不是控制器/操作 URL
- r - 带有 select() 的 case_when() 函数
- r - R在没有Java的情况下连接到数据库?
- r - 如何保存 ppp(平面点模式数据帧)或从 spatsat 中的不同 ppp 对象创建的超帧
- bash - 您如何在 wget 请求中显示缺少前导 0?
- php - 如何在 JWT API - Laravel 5.8 上验证用户群?
- verilog - 在“Verilog”中创建具有单输入/输出数据端口的“RAM”芯片
- android - 服务和唤醒锁
- nginx - 如何在 nginx 中将两个域名指向一个网站
- amazon-web-services - 我如何备份 s3 或者是否可以备份 s3?