29
|
Eric O. Lebigot · 技术社区 · 15 年前 |
![]() |
1
15
你应该打电话给
顺便问一下,你没有告诉我们你
希望
如果你想要一个具有dict(mapping)行为的类,并且你不需要一个dict(例如,没有代码可以做)
编辑:我在另一条评论中看到你没有重写dict的任何方法!那么子类化根本就没有意义,不要这样做。
编辑2:您希望从dict继承以添加新方法,但不需要重写任何方法。比一个好的选择可能是:
顺便问一下:你在添加什么方法?你确定你正在创建一个好的抽象吗?也许你最好使用一个类来定义你需要的方法,并在内部使用一个“普通”的dict。 工厂功能: http://en.wikipedia.org/wiki/Factory_method_pattern 它只是将实例的构造委托给函数的一种方法,而不是重写/更改其构造函数。 |
![]() |
2
10
通常应调用基类'
或者不重写
我们不应该假定基类在做什么或不做什么,不调用基类是错误的
|
![]() |
3
3
在子类化dict时要小心酸洗;例如,这需要在2.7中使用“getnewargs”, 可能在旧版本中设置了状态。(我不知道为什么。)
|
![]() |
4
2
PEP 372 处理将有序dict添加到collections模块。 它警告说,“对dict进行子类化是一项非常重要的任务,许多实现没有正确地重写所有方法,这可能导致意外的结果。”
提议(和接受)
patch
到python3.1使用
基于此,看起来
编辑:
如果您没有覆盖或扩展
|
![]() |
July · 如何定义数字间隔,然后四舍五入 1 年前 |
![]() |
user026 · 如何根据特定窗口的平均值(行数)创建新列? 1 年前 |
|
Ashok Shrestha · 需要追踪特定的颜色线并获取坐标 1 年前 |
![]() |
Nicote Ool · 在FastApi和Vue3中获得422 1 年前 |
|
Abdulaziz · 如何对集合内的列表进行排序[重复] 1 年前 |
![]() |
asmgx · 为什么合并数据帧不能按照python中的预期方式工作 1 年前 |