object() == object() 是否保证为 False?
Is object() == object() guaranteed to be False?
假设我创建了 class object
的两个实例。这两个实例是否保证彼此不相等?换句话说,是 object() == object()
保证是 False
,还是取决于实现?
我知道object() is object()
肯定是False
,但是我这里问的是object() == object()
。
是的,保证 object() == object()
是 False
因为它是 documented,“默认情况下,object
通过使用 [=14] 实现 __eq__()
=]".
每个 Python 3.x 版本都旨在 backward-compatible 与以前的 3.x 版本。由于它是基础 class,因此更改 object
的比较行为会破坏此向后兼容性承诺。所以我认为你可以依赖它,但如果我们知道你正在尝试做的事情需要这个不变量,我们可能会提供更好的建议。
您可以随时使用 assert
来确保它继续为真。
假设我创建了 class object
的两个实例。这两个实例是否保证彼此不相等?换句话说,是 object() == object()
保证是 False
,还是取决于实现?
我知道object() is object()
肯定是False
,但是我这里问的是object() == object()
。
是的,保证 object() == object()
是 False
因为它是 documented,“默认情况下,object
通过使用 [=14] 实现 __eq__()
=]".
每个 Python 3.x 版本都旨在 backward-compatible 与以前的 3.x 版本。由于它是基础 class,因此更改 object
的比较行为会破坏此向后兼容性承诺。所以我认为你可以依赖它,但如果我们知道你正在尝试做的事情需要这个不变量,我们可能会提供更好的建议。
您可以随时使用 assert
来确保它继续为真。