python入门(八)操作符重定义和继承
参考书籍 python_note_pdq.pdf
13.1 加减法重定义
Python的基本数据类型如整数、浮点数,能够进行数学运算。类可以吗?为了使类的实例也可以进行数学操作,我们需要在类的内部重新定义数学操作符,使之支持用户定义的数据类型。
class RMB:
def __init__(self,sum=0.0):
self.sum = sum
#呵呵,类似于toString()?
def __str__(self):
return str(self.sum)
#重定义加法操作
def __add__(self,other):
return RMB(self.sum + other.sum)
#重定义减法操作
def __sub__(self,other):
return RMB(self.sum - other.sum)
a = RMB(2.1)
b = RMB(1.0)
print(a,b,a+b,a-b,a.__add__(b),a.__sub__(b))
控制台输出如下:
2.1 1.0 3.1 1.1 3.1 1.1
13.2 乘法重定义
如果乘法操作符“*”的左右操作数都是用户定义的数据类型,那么调用mul 。若左边的操作数是原始数据类型,而右边是用户定义数据类型,则调用rmul 。
class Rect:
def __init__(self, width = 0.0, length = 0.0):
self.width = width
self.length = lengt
参考书籍 python_note_pdq.pdf
13.1 加减法重定义
Python的基本数据类型如整数、浮点数,能够进行数学运算。类可以吗?为了使类的实例也可以进行数学操作,我们需要在类的内部重新定义数学操作符,使之支持用户定义的数据类型。
class RMB:
def __init__(self,sum=0.0):
self.sum = sum
#呵呵,类似于toString()?
def __str__(self):
return str(self.sum)
#重定义加法操作
def __add__(self,other):
return RMB(self.sum + other.sum)
#重定义减法操作
def __sub__(self,other):
return RMB(self.sum - other.sum)
a = RMB(2.1)
b = RMB(1.0)
print(a,b,a+b,a-b,a.__add__(b),a.__sub__(b))
控制台输出如下:
2.1 1.0 3.1 1.1 3.1 1.1
13.2 乘法重定义
如果乘法操作符“*”的左右操作数都是用户定义的数据类型,那么调用mul 。若左边的操作数是原始数据类型,而右边是用户定义数据类型,则调用rmul 。
class Rect:
def __init__(self, width = 0.0, length = 0.0):
self.width = width
self.length = lengt