![]() |
1
3
遗产:没有 有道理吗:当然,为什么不呢? 默认情况下不执行此类检查,如您在此处看到的:
|
![]() |
2
7
首先检查身份可能是一个非常合理的快捷方式,在平等方法中,您应该寻找好的快捷方式(对于平等和不平等),以便尽快返回。 但是,从另一方面来说,如果你的平等测试成本很低,而且你在实践中不太可能将一个对象与它本身进行比较,那么这也可能是一个完全多余的检查。
例如,如果可以通过比较一个或两个整数来衡量对象之间的相等性,那么这应该比身份测试更快,因此在比较所需的时间内
因此,如果完全相等性检查不便宜,并且有可能将对象与自身进行比较,那么首先检查身份是一个好主意。 请注意,默认情况下未执行检查的另一个原因是,对于具有相同标识的对象,将其作为非相等对象进行比较是非常合理的(尽管很少见),例如:
|
![]() |
3
2
在类中实现自定义相等时,可以自己决定是否首先检查标识。这完全取决于你。注意,在python中,决定
这当然是一种速度改进,尽管其中有多少取决于方法的复杂性。我通常不会在自定义类中费心,但我没有太多速度关键的代码(在我这样做的地方,对象比较不是热点)。 对于我的大多数对象,相等方法如下:
我可以很容易地添加
还记得重写
|
![]() |
4
1
几年前我在comp.lang.python上问了一个类似的问题- here is the thread . 当时的结论是,如果您对对象本身进行了许多相等性测试,或者您的其他相等性测试逻辑很慢,那么前面的身份测试是值得的。 |
![]() |
5
0
这只是出于性能原因。 在我在爪哇工作的一个编程工作中,总是这样做,即使它没有改变任何功能。 |
![]() |
July · 如何定义数字间隔,然后四舍五入 1 年前 |
![]() |
user026 · 如何根据特定窗口的平均值(行数)创建新列? 1 年前 |
|
Ashok Shrestha · 需要追踪特定的颜色线并获取坐标 1 年前 |
![]() |
Nicote Ool · 在FastApi和Vue3中获得422 1 年前 |
|
Abdulaziz · 如何对集合内的列表进行排序[重复] 1 年前 |
![]() |
asmgx · 为什么合并数据帧不能按照python中的预期方式工作 1 年前 |