博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
python3.4中自定义数组类(即重写数组类)
阅读量:5092 次
发布时间:2019-06-13

本文共 1828 字,大约阅读时间需要 6 分钟。

'''自定义数组类,实现数组中数字之间的四则运算,内积运算,大小比较,数组元素访问修改及成员测试等功能'''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.__value    #重载运算符+    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    print(x.getValue)

 

转载于:https://www.cnblogs.com/ysq0908/p/9157373.html

你可能感兴趣的文章
数据结构 : Hash Table [II]
查看>>
面向对象的小demo
查看>>
获取地址栏参数
查看>>
java之hibernate之helloworld
查看>>
微服务之初了解(一)
查看>>
Iterator invalidation(迭代器失效)
查看>>
GDOI DAY1游记
查看>>
Android 网络编程
查看>>
移动端前端笔记 — 遇到的常见JS与CSS问题及解决方法
查看>>
算法笔记_039:杨辉三角形(Java)
查看>>
C# 退出程序方法
查看>>
命令行卸载IE
查看>>
解决图片三像素的问题
查看>>
代码重构七
查看>>
php socket通信(tcp/udp)
查看>>
MongoDB安装配置(Windows)
查看>>
常用的事件
查看>>
Adam 算法
查看>>
WebService—规范介绍和几种实现WebService的框架介绍
查看>>
周鸿祎:做产品体验先把自己切换到二傻子模式
查看>>