美文网首页
Python中 __radd__ 等运算符的变更

Python中 __radd__ 等运算符的变更

作者: 逸筱幻 | 来源:发表于2018-04-26 17:24 被阅读0次

先看下面一段代码

class Case:
  def __radd__(self, other):
    return 1

print(Case() + Case())
python2.7.10 中打印的值为
print(Case() + Case())// -> 1
python 3.6中打印的值为
print(Case() + Case())// -> TypeError: unsupported operand type(s)
官方文档中有一段说明

These methods are called to implement the binary arithmetic operations (+, -, *, @, /, //, %, divmod(), pow(), **, <<, >>, &, ^, |) with reflected (swapped) operands. These functions are only called if the left operand does not support the corresponding operation [3] and the operands are of different types. [4] For instance, to evaluate the expression x - y, where y is an instance of a class that has an rsub() method, y.rsub(x) is called if x.sub(y) returns NotImplemented.

大意是在python3中,像 __radd__, __rmul__ 等被重载的运算符,在满足下面两种情况下才会被调用

  • 两个操作数类型不同
  • 左边的操作数没有实现__add__方法或 __add__ 返回 NotImplemented

相关文章

  • Python中 __radd__ 等运算符的变更

    先看下面一段代码 python2.7.10 中打印的值为 python 3.6中打印的值为 官方文档中有一段说明...

  • Python3 运算符

    本节中主要介绍 Python 的运算符。Python 语言支持以下类型的运算符: 算术运算符 比较(关系)运算符 ...

  • 笨方法学python-习题3-数字计算

    习题3-数字计算 认识python中数字运算符 python数字计算练习 认识python中数字运算符 pytho...

  • Python学习笔记二(运算符、程序结构)

    Python 运算符 python中运算符分为五大类:算术运算符、赋值运算符、比较运算符、逻辑运算符、条件运算符(...

  • 小白的Python之路(3)--运算符

    @(Python3) 内容:运算符 1. 位运算符 Python中的运算符和Java中基本差不多,这里主要介绍一下...

  • 7.比较运算符

    1>比较运算符 python中我们常用的比较运算符有哪些呢? == 检查两个操作的数的值是不是相当 !=不想等 >...

  • 第三章:运算符

    1、逻辑运算符 与c、c++、java、swift等语言不同,python逻辑运算符不是&&,||,!等符号,而是...

  • Python运算符是什么?本文详解!

    Python中的运算符是什么? 运算符是Python中执行算术或逻辑计算的特殊符号。运算符所操作的值称为操作数。 ...

  • ptyhon中的运算符

    ptyhon中的运算符 python中的运算符包括:数学运算符,逻辑运算符,位运算符,比较运算符,辅助运算符 1、...

  • python运算符

    Python算数运算符 Python比较运算符 Python赋值运算符 Python位运算符 按位运算符是把数字看...

网友评论

      本文标题:Python中 __radd__ 等运算符的变更

      本文链接:https://www.haomeiwen.com/subject/qxjmlftx.html