Python是如何处理eq的?顺序是什么?

由于Python不提供其比较运算符的左/右版本,它如何决定调用哪个函数

A类(对象):
定义(自身、其他):
“打印”;一个称为“eq”的“eq”;
返回self.value==其他
B类(对象):
定义(自身、其他):
“打印”;被称为;
返回self.value==其他
&燃气轮机&燃气轮机&燃气轮机;a=a()
&燃气轮机&燃气轮机&燃气轮机;a、 值=3
&燃气轮机&燃气轮机&燃气轮机;b=b()
&燃气轮机&燃气轮机&燃气轮机;b、 值=4
&燃气轮机&燃气轮机&燃气轮机;a==b
&引用;一个称为“eq”的“eq”;
&引用;被称为;
错误的

这似乎调用了两个\uuuuu eq\uuu函数

我正在寻找官方的决策树

a==b表达式调用a.\uuu eq\uuu,因为它存在。其代码包括self.value==other。由于int不知道如何将自己与B进行比较,Python尝试调用B.\uuu eq\uu,看看它是否知道如何将自己与int进行比较

如果修改代码以显示要比较的值:

A类(对象):
定义(自身、其他):
打印(“一个被称为:%r==%r?”%(自我,其他))
返回self.value==其他
B类(对象):
定义(自身、其他):
打印(“B=被调用:%r==%r?”%(自身,其他))
返回self.value==其他
a=a()
a、 值=3
b=b()
b、 值=4
a==b

它将打印:

A被称为:&lt__0x013BA070处的主对象>==&lt__0x013BA090处的主\uuuB.B对象&gt?
B uuu eq uuuuuu被称为:&lt__0x013BA090处的主\uuUb.B对象>==3.

发表评论