擅长:python、mysql、java
<p>不,不可能创建两个比较相等而不完全相同的类对象,除非通过搞乱元类<code>__eq__</code>方法。在</p>
<p>不过,这种行为并不是类独有的。这是没有在类中定义<code>__eq__</code>方法的任何对象的默认行为。行为继承自<code>object</code>,它是所有其他(新样式)类的基类。它只对具有其他语义的内置类型(例如比较其内容的容器类型)和定义自己的<code>__eq__</code>运算符的自定义类重写。在</p>
<p>至于在不同的内存位置获取对同一类的两个不同引用,由于Python的对象语义,这是不可能的。对象的内存位置是其标识(至少在cpython中)。另一个具有相同内容的类可以存在于其他地方,但是就像您的<code>A1</code>和<code>A2</code>示例中一样,所有Python逻辑都将它视为一个不同的对象。在</p>