由于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被称为:<__0x013BA070处的主对象>;==<__0x013BA090处的主\uuuB.B对象>?
B uuu eq uuuuuu被称为:<__0x013BA090处的主\uuUb.B对象>;==3.