您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

为什么/何时在Python中`x == y`调用`y .__ eq __(x)`?

为什么/何时在Python中`x == y`调用`y .__ eq __(x)`?

您缺少通常行为的关键例外:当右侧操作数是左侧操作数类的子类的实例时,将首先调用右侧操作数的特殊方法

请参阅以下文档:

http://docs.python.org/reference/datamodel.html#coercion- rules

特别是以下两段:

对于xy,首先 x.__op__(y)尝试。如果未实现或返回NotImplemented,请y.__rop__(x)尝试。如果这也没有实现或返回NotImplemented,则引发TypeError异常。但是请参见以下异常:

上一项的例外:如果左操作数是内置类型或新样式类的实例,而右操作数是该类型或类的适当子类的实例,并且覆盖基数的__rop__()方法,则右操作的__rop__()方法是左操作的尝试过__op__()方法

python 2022/1/1 18:27:32 有190人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶