Python 运算符的重载
实现列表加减乘除数的操作
class Array:
__data=[]
__size=0
def __isNum(self,n):
if(not isinstance(n,int) and not isinstance(n,float)):
return False
return True
def __init__(self,*args):
self.__data=list(args)
self.__size=len(self.__data)
def show(self):
print(self.__data)
def __add__(self,n):
if(self.__isNum(n)):
for index in range(self.__size):
if(self.__isNum(self.__data[index])):
self.__data[index]=self.__data[index]+n
else:
print(str(self.__data[index])+"不是一个数字类型")
else:
print(str(n)+"不是一个数字类型")
return self.__data
def __sub__(self, n):
if (self.__isNum(n)):
for index in range(self.__size):
if (self.__isNum(self.__data[index])):
self.__data[index] = self.__data[index] - n
else:
print(str(self.__data[index]) + "不是一个数字类型")
else:
print(str(n) + "不是一个数字类型")
return self.__data
def __mul__(self, n):
if (self.__isNum(n)):
for index in range(self.__size):
if (self.__isNum(self.__data[index])):
self.__data[index] = self.__data[index] * n
else:
print(str(self.__data[index]) + "不是一个数字类型")
else:
print(str(n) + "不是一个数字类型")
return self.__data
def __truediv__(self, n):
if (self.__isNum(n)):
for index in range(self.__size):
if (self.__isNum(self.__data[index])):
self.__data[index] = self.__data[index] / n
else:
print(str(self.__data[index]) + "不是一个数字类型")
else:
print(str(n) + "不是一个数字类型")
return self.__data
a=Array(1,2,3,4,5)
a.show()
print(a/2)