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

python3.4中自定义数组类(即重写数组类)的更多相关文章

  1. python3.4中自定义wsgi函数,make_server函数报错问题

    别的不多说,先上代码 #coding:utf-8 from wsgiref.simple_server import make_server def RunServer(environ, start_ ...

  2. Python中自定义类如果重写了__repr__方法为什么会影响到str的输出?

    这是因为Python3中,str的输出是调用类的实例方法__str__来输出,如果__str__方法没有重写,则自动继承object类的__str__方法,而object类的__str__方法是调用_ ...

  3. C#中自定义类数组和结构数组的使用

    如有雷同,不胜荣幸,若转载,请注明 C#中自定义类数组和结构数组的使用 最近在很多项目中发现很多时候给定的数组要实现某个逻辑或处理很是麻烦,一维数组,二维数组,,,等等需要经过n多转换,还不如自己写一 ...

  4. 读取SequenceFile中自定义Writable类型值

    1)hadoop允许程序员创建自定义的数据类型,如果是key则必须要继承WritableComparable,因为key要参与排序,而value只需要继承Writable就可以了.以下定义一个Doub ...

  5. String类中的equals是如何重写的

    我们知道String中的equals方法是被重写过的,因为object的equals方法是比较的对象的内存地址,而String的equals方法比较的是对象的值. 首先几个知识点: 基本数据类型==比 ...

  6. 关于MapReduce中自定义分区类(四)

    MapTask类 在MapTask类中找到run函数 if(useNewApi){       runNewMapper(job, splitMetaInfo, umbilical, reporter ...

  7. 创建如下三个类:(People类中的三个方法分别输出一些信息,ChinaPeople 和AmericanPeople类重写父类的三个方法)。

    创建如下三个类:(People类中的三个方法分别输出一些信息,ChinaPeople 和AmericanPeople类重写父类的三个方法). ackage com.chuoji.text01; pub ...

  8. Python3.x中bytes类型和str类型深入分析

    Python 3最重要的新特性之一是对字符串和二进制数据流做了明确的区分.文本总是Unicode,由str类型表示,二进制数据则由bytes类型表示.Python 3不会以任意隐式的方式混用str和b ...

  9. VBA中自定义类和事件的(伪)注册

    想了解一下VBA中自定义类和事件,以及注册事件处理程序的方法. 折腾了大半天,觉得这样的方式实在称不上“注册”,所以加一个“伪”字.纯粹是瞎试,原理也还没有摸透.先留着,有时间再接着摸. 做以下尝试: ...

随机推荐

  1. git 建议使用

    1 登录github官网首页 创建一个项目 2 本地克隆下载git项目 git clone https://github.com/wangguoxingduanxuejing/branch-pract ...

  2. Python编程Day1——计算机组成与操作系统

    一..计算机基础 二.编程与编程的目的 1.什么是语言? 一种事物与另外一种事物沟通的介质 编程语言是程序员与计算机沟通的介质 2.什么是编程? 程序员把自己想要让计算机做的事用编程语言表达出来,编程 ...

  3. 【机器学习】--模型评估指标之混淆矩阵,ROC曲线和AUC面积

    一.前述 怎么样对训练出来的模型进行评估是有一定指标的,本文就相关指标做一个总结. 二.具体 1.混淆矩阵 混淆矩阵如图:  第一个参数true,false是指预测的正确性.  第二个参数true,p ...

  4. Python + PyQt5 实现美剧爬虫可视工具(二)

    美剧<权力的游戏>终于开播最后一季了,在上周写了个简单的可视化美剧的爬虫软件来爬取美剧,链接:https://www.cnblogs.com/weijiutao/p/10614694.ht ...

  5. Mybatis之旅第四篇-输入输出映射

    一.引言 在日常开发用到mybatis时,因为实际的开发业务场景很复杂,不论是输入的查询条件,还是返回的结果,经常是需要根据业务来定制,这个时候我们就需要自己来定义一些输入和输出映射 二.parame ...

  6. 《代码整洁之道》(Clean Code)- 读书笔记

    一.关于Bob大叔的Clean Code <代码整洁之道>主要讲述了一系列行之有效的整洁代码操作实践.软件质量,不但依赖于架构及项目管理,而且与代码质量紧密相关.这一点,无论是敏捷开发流派 ...

  7. Android序列化

    1.序列化的目的 (1)永久的保存对象数据(将对象数据保存在文件当中,或者是磁盘中 (2)通过序列化对象在网络中传递对象 (3)通过序列化对象在进程间传递 (4)在Intent之间,基本的数据类型直接 ...

  8. 【activity任务栈】浅析

    背景知识 Activity四种启动模式 标准模式 standard 栈顶复用模式 singleTop 栈内复用模式 singleTask 单例模式 singleInstance 任务栈 Activit ...

  9. springboot~Money类型在序列化时遇到的问题与解决

    在java扩展包里,有这样一个包,它可以描述货币类型,它说币种和金额组成,可以应用在任何复杂的场合里,这个对象结构如下: { "price": { "amount&quo ...

  10. 总结C语言字符检测函数:isalnum、isalpha...

    前言:最近一直在刷leetcode的题,用到isalnum函数,用man手册查找了一下,总共有13个相关函数如下: #include <ctype.h> int isalnum(int c ...