好文档 - 专业文书写作范文服务资料分享网站

《Python程序设计》 实验报告实验11 Python面向对象下

天下 分享 时间: 加入收藏 我要投稿 点赞

温州大学瓯江学院数学与信息工程学院

《Python程序设计》 实验报告

实验名称: 班 级: 实验地点: 18计算机2 7-706 实验11 Python面向对象下 姓 名: 日 期: 一、实验目的: [实验目的和要求] 1、掌握如何定义一个类 2、了解如何定义类的私有数据成员和成员方法 3、掌握如何使用自定义类实例化对象 二、实验环境: 1、计算机,局域网,python软件 三、实验内容和要求:(直接将实验步骤及截图写在题目下面,结果必须截图) 1、Python中,各种运算符也属于特殊方法,如x+y等价于x.__add__(y);python类体中,通过重写各运算符所对应的特殊方法,即可以实现运算符的重载。使用运算符重载完成如下问题: (1)定义类MyList,实现列表中每个元素加、减、乘、除n,并返回列表长度并输出列表。参照重载运算符\将其他重载运算符代码补全并测试: class MyList: #定义类MyList def __init__(self, *args): #构造函数 self.__mylist = [] #初始化私有属性,空列表 for arg in args: self.__mylist.append(arg) def __add__(self, n): #重载运算符\,每个元素增加n #重载运算符\,每个元素减少n #实现代码 #重载运算符\,每个元素乘以n #实现代码 #重载运算符\,每个元素除以n #实现代码 def __len__(self): #对应于内置函数len(),返回列表长度 return(len(self.__mylist)) def __repr__(self): #对应于内置函数repr(),显示列表,可换为__str__() str1 = '' 学 号: 2019/11/28 18219116135 for i in range(0, len(self.__mylist)): str1 += str(self.__mylist[i]) + ' ' return str1 要求实例化MyList类,进行相应运算与操作,参考测试代码,输出相应结果。并查阅相关资料,了解__str__和__repr__的区别。 m = MyList(1, 2, 3, 4, 5) m + 2 print(repr(m)) m – 1 print(repr(m)) m * 4 print(repr(m)) m / 2 print(repr(m)) print(len(m)) 代码: class MyList: def __init__(self, *args): self.__mylist = [] for arg in args: self.__mylist.append(arg) def __add__(self,n): for i in range(len(self.__mylist)): self.__mylist[i]+=n def __sub__(self,n): for i in range(len(self.__mylist)): self.__mylist[i]-=n def __truediv__(self,n): for i in range(len(self.__mylist)): self.__mylist[i]/=n def __mul__(self,n): for i in range(len(self.__mylist)): self.__mylist[i]*=n def __len__(self): return(len(self.__mylist)) def __repr__(self): str1 = '' for i in range(0, len(self.__mylist)): str1 += str(self.__mylist[i]) + ' ' return str1 n=MyList(7,6,9) n+2 print(repr(n)) n-3 print(repr(n)) n*2 print(repr(n)) n/4 print(repr(n)) print(len(n)) (2)实现一个三维向量类,并定义相应的特殊方法实现两个该类对象之间的加、减运算(要求支持运算符+、-),实现该类对象与标量的乘、除运算(要求支持运算符* 、/),以及向量长度的计算(要求使用属性实现)。并写出测试代码 补全下面参考代码: class Vector3: # 构造方法,初始化,定义向量坐标 def __init__(自设定参数): # 与另一个向量相加,对应分量相加,返回新向量 def __add__(self,anotherPoint): return # 减去另一个向量,对应分量相减,返回新向量 # 向量与一个数字相乘,各分量乘以同一个数字,返回新向量 # 向量除以一个数字,各分量除以同一个数字,返回新向量 # 查看向量长度,所有分量平方和的平方根,请使用@property实现 #用于输出显示 def __str__(self): return 'Vector3({},{},{})'.format(self.__x,self.__y,self.__z) 代码: class Xiangliang: def __init__(self,x,y,z): self.__x=x self.__y=y self.__z=z def __add__(self,anotherPoint): return Xiangliang(self.__x+anotherPoint.__x,self.__y+anotherPoint.__y,self.__z+anotherPoint.__z) def __sub__(self,anotherPoint): return Xiangliang(self.__x-anotherPoint.__x,self.__y-anotherPoint.__y,self.__z-anotherPoint.__z) def __truediv__(self,n): return Xiangliang(self.__x/n,self.__y/n,self.__z/n) def __mul__(self,n): return Xiangliang(self.__x*n,self.__y*n,self.__z*n) def __str__(self): return 'xiangliang({},{},{})'.format(self.__x,self.__y,self.__z) bbk=Xiangliang(3,5,9) mmk=Xiangliang(6,5,4) print(bbk,mmk) print('减运算{}'.format(bbk-mmk)) print('加运算{}'.format(bbk+mmk)) print('乘运算{}'.format(bbk*2)) print('除运算{}'.format(bbk/3)) 四、实验结果与分析(实验总结(请将有疑问的题目和自己的答案粘贴此处。可不写)): 五:思考题(必做): 无 六、教师评语:

《Python程序设计》 实验报告实验11 Python面向对象下

温州大学瓯江学院数学与信息工程学院《Python程序设计》实验报告实验名称:班级:实验地点:18计算机27-706实验11Python面向对象下姓名:日期:一、实验目的:[实验目的和要求]1、掌握如何定义一个类2、了解如何定义类的私有数据成员和成员方法3、掌
推荐度:
点击下载文档文档为doc格式
8l9z35ydab8c83h0epna2cg5h8ins2016fr
领取福利

微信扫码领取福利

微信扫码分享