python3.4中⾃定义数组类(即重写数组类)'''⾃定义数组类,实现数组中数字之间的四则运算,内积运算,⼤⼩⽐较,数组元素访问修改及成员测试等功能''' class MyArray:
'''保证输⼊值为数字元素(整型,浮点型,复数)'''
def___isNumber(self, n):
if not isinstance(n,(int,float,complex)):
return False
return True
#构造函数,进⾏必要的初始化
def__init__(self,*args):
if not args:
self.__value = []
else:
for arg in args:
if not self.___isNumber(arg):
print('All elements must be numbers')
return
self.__value = list(args)
@property
def getValue(self):
return self.__value
#析构函数,释放内部封装的列表
def__del__(self):
del self.__valuepython 定义数组
#重载运算符+
def__add__(self, other):
'''数组中每个元素都与数字other相加,或者两个数组相加,得到⼀个新数组'''
if self.___isNumber(other):
#数组与数字other相加
b = MyArray()
b.__value = [item + other for item in self.__value]
return b
elif isinstance(other,MyArray):
#两个数组对应元素相加
if (len(other.__value) == len(self.__value)):
c = MyArray()
c.__value = [i+j for i,j in zip(self.__value,other.__value)]
return c
else:
print('Lenght no equal')
else:
print('Not supported')
#重载运算符-
def__sub__(self, other):
'''数组元素与数字other做减法,得到⼀个新数组'''
pass
#重载运算符*
def__mul__(self, other):
'''数组元素与数字other做乘法,或者两个数组相乘,得到⼀个新数组'''
pass
#重载数组len,⽀持对象直接使⽤len()⽅法
def__len__(self):
return len(self.__value)
#⽀持使⽤print()函数查看对象的值
def__str__(self):
return str(self.__value)
if__name__ == "__main__":
print('Please use me as a module.')
x = MyArray(1,12,15,14,1)
print('%s\n array lenghts:%d'%(x,len(x)))
x = x+2
Value)

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。