python--模仿方法-算术运算(二十八)

举报
brucexiaogui 发表于 2021/12/30 00:41:42 2021/12/30
【摘要】 python--模仿方法-算术运算(二十八)   # 魔法方法之 算术运算 '''Python中,加、减、乘、除、取模、求平方等都有自己的魔法方法,需要时我们也可以重写这些魔法方法。下面举例说明一下,为了区分重写的魔法方法和原来的魔法方法,我们把加法定义为减法,减法定义为加法。'''class TestInt(int): ...

python--模仿方法-算术运算(二十八)

 


  
  1. # 魔法方法之 算术运算
  2. '''
  3. Python中,加、减、乘、除、取模、求平方等都有自己的魔法方法,需要时我们也可以重写这些魔法方法。下面举例说明一下,
  4. 为了区分重写的魔法方法和原来的魔法方法,我们把加法定义为减法,减法定义为加法。
  5. '''
  6. class TestInt(int): #继承int类
  7. def __add__(self,other): #重写加法魔法方法,返回值调用了int的减法魔法方法
  8. return int.__sub__(self,other)
  9. def __sub__(self,other): #重写减法魔法方法,返回值调用了int的加法魔法方法
  10. return int.__add__(self,other)
  11. a = TestInt(2) #生成一个TestInt类的对象并初始化为2
  12. b = TestInt(1)
  13. print(a+b) #结果为1,说明运行a的加法方法时调用了int的减法方法
  14. #反向运算 当给出的运算对象不存在时,可以通过反运算进行操作。
  15. class Rint(int):
  16. def __radd__(self, other):
  17. return int.__sub__(self,other)
  18. a = Rint(5)
  19. b = Rint(3)
  20. print(a+b) # 8
  21. print(1+b) #2 1不是上面定义好的对象,所以此时在__sub__(self,other)方法中第一个参数就是b,第二个参数就是1 运算后结果就是3-1=2

 

文章来源: brucelong.blog.csdn.net,作者:Bruce小鬼,版权归原作者所有,如需转载,请联系作者。

原文链接:brucelong.blog.csdn.net/article/details/80447398

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。