我看到 __iconcat__ 方法是在 2.5 中添加的,那么继续使用 __iadd__ 是否只是历史遗留问题?是否有某些原因它不能或没有被 __iconcat__ 取代?我是否完全误解了 __iconcat__ 的目的?
我想到的一些可能的原因是:
此更改将破坏任何通过 __iadd__ 方法重载 list += 运算符的代码(尽管我非常怀疑这是常见的做法,而且无论如何我不明白为什么 py3k 不能破坏兼容性)。
__iadd__ 和 __iconcat__ 在功能上是等价的,所以区别纯粹是语义上的。由于不直接调用这些方法,因此具有稍微更有意义的方法名称并不是进行此类更改的充分理由。
我很好奇是否有人对此有任何见解或历史观点。