Python基础入门学习笔记 043 魔法方法:算术运算2


实例1: 1 >>> class int(int): 2 def __add__(self,other): 3 return int.__sub__(self,other) 4 5 6 >>> a = int(3) 7 >>> b = int(2) 8 >>> a + b 9 1

反运算:

反运算与算术运算符的不同之处是,反运算多了一个'r',例如 __add__()的反运算对应为 __radd__()

>>> a + b

这里a是加数,b是被加数,如果a对象的__add__()方法没有实现或者不支持相应的操作,那么python就会自动调用b的__radd__()方法

实例:

1 >>> class Nint(int): 2 def __radd__(self,other): 3 return int.__sub__(self,other) 4 5 6 >>> a = Nint(5) 7 >>> b = Nint(3) 8 >>> a + b #由于a对象默认有__add__()方法,所以b的__radd__()没有执行 9 8

实例2:

1 >>> class Nint(int): 2 def __radd__(self,other): 3 return int.__sub__(self,other) 4 5 6 >>> b = Nint(5) 7 >>> 3 + b #由于3无__add__()方法,所以执行b的反运算__radd__(self,other)方法,其中self是b对象 8 2

注:在重写反运算魔法方法时,一定要注意顺序问题。

增量赋值运算:

比较操作符:

其它操作符:



上一篇:Python基础入门学习笔记 033 异常处理:你不可能总是对的2

下一篇:Python基础入门学习笔记 044 魔法方法:简单定制


Python
Copyright © 2002-2019 k262电脑网 www.k262.cn 皖ICP备2020016292号
温馨提示:部分文章图片数据来源与网络,仅供参考!版权归原作者所有,如有侵权请联系删除!QQ:251442993 热门搜索 网站地图