python--模仿方法-算术运算(二十八)
【摘要】
python--模仿方法-算术运算(二十八)
# 魔法方法之 算术运算 '''Python中,加、减、乘、除、取模、求平方等都有自己的魔法方法,需要时我们也可以重写这些魔法方法。下面举例说明一下,为了区分重写的魔法方法和原来的魔法方法,我们把加法定义为减法,减法定义为加法。'''class TestInt(int): ...
python--模仿方法-算术运算(二十八)
-
# 魔法方法之 算术运算
-
-
'''
-
Python中,加、减、乘、除、取模、求平方等都有自己的魔法方法,需要时我们也可以重写这些魔法方法。下面举例说明一下,
-
为了区分重写的魔法方法和原来的魔法方法,我们把加法定义为减法,减法定义为加法。
-
'''
-
class TestInt(int): #继承int类
-
def __add__(self,other): #重写加法魔法方法,返回值调用了int的减法魔法方法
-
return int.__sub__(self,other)
-
def __sub__(self,other): #重写减法魔法方法,返回值调用了int的加法魔法方法
-
return int.__add__(self,other)
-
a = TestInt(2) #生成一个TestInt类的对象并初始化为2
-
b = TestInt(1)
-
print(a+b) #结果为1,说明运行a的加法方法时调用了int的减法方法
-
-
#反向运算 当给出的运算对象不存在时,可以通过反运算进行操作。
-
class Rint(int):
-
def __radd__(self, other):
-
return int.__sub__(self,other)
-
a = Rint(5)
-
b = Rint(3)
-
print(a+b) # 8
-
-
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)