Python程序设计基础项目化教程 习题及答案 项目十 类与对象高级应用_第1页
Python程序设计基础项目化教程 习题及答案 项目十 类与对象高级应用_第2页
Python程序设计基础项目化教程 习题及答案 项目十 类与对象高级应用_第3页
Python程序设计基础项目化教程 习题及答案 项目十 类与对象高级应用_第4页
Python程序设计基础项目化教程 习题及答案 项目十 类与对象高级应用_第5页
全文预览已结束

付费下载

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Python语言程序设计类与对象高级应用测试习题答案

测试习题答案一、填空题Python提供了__slots__变量以限制可动态扩展的属性。Python提供了@property装饰器,可以将类中属性的访问和赋值操作自动转为方法调用,这样可以在方法中对属性值的取值范围做一些条件限定。直接使用@property可以定义一个用于获取属性值的方法(即getter)。如果需要对属性score定义一个设置属性值的方法(setter),需要用到的装饰器为@score.setter。元类可以看成是创建类时所使用的模板,也可以理解为是用于创建类的类。单例模式是指在程序运行时确保某个类最多只有一个实例对象。在执行__init__前,还会执行类的一个内置的类方法__new__,其作用是创建对象并返回。二、选择题关于类方法的说法错误的是(D)类方法是指使用@classmethod修饰的方法类方法的第一个参数是类本身(而不是类的实例对象)类方法既可以通过类名直接调用,也可以通过类的实例对象调用。类方法只能通过类名直接调用关于静态方法的说法错误的是(B)静态方法是指使用@staticmethod修饰的方法静态方法的第一个参数是类本身(而不是类的实例对象)静态方法既可以通过类名直接调用,也可以通过类的实例对象调用。静态方法中没有类方法中的第一个类参数已知Complex类的类方法add(cls,c1,c2)实现两个复数的相加运算,程序可以使用不同的方式调用该方法,下面错误的调用方式是(C)A. c3=Complex.add(c1,c2)B. c3=c1.add(c1,c2)C. c3.add(Complex,c1,c2)D. c3=Complex().add(c1,c2)关于动态扩展类的说法正确的是(A)A. Python除了可以在定义类时定义属性和方法外,还可以动态地为已经创建的对象绑定新的属性和方法B. Python只能在定义类时定义属性和方法,不能动态扩展C. Python只能动态扩展属性,不能动态扩展方法D. Python只能动态扩展方法,不能动态扩展属性三、简答题下面程序对圆柱体类Cylinder实现动态绑定方法,请将程序填写完整。fromtypesimportMethodType#从types模块导入MethodType方法classCylinder:passdefSetRadius(self,r):self.Radius=rdefSetHeight(self,h):self.Height=hif__name__=='__main__':c1=Cylinder()c2=Cylinder()#为c1对象绑定SetRadius方法c1.SetRadius=MethodType(SetRadius,c1)#为Cylinder类绑定SetHeight方法Cylinder.SetHeight=SetHeightc1.SetRadius(10)c2.SetRadius(20)#c2对象未绑定SetRadius方法,此语句有误c1.SetHeight(30)c2.SetHeight(40)写出下面程序的运行结果。classCylinder:Radius=5Height=10defDisplay(self):print("圆柱体半径为",self.Radius)classCircle:Radius=50defDisplay(self):print("圆半径为",self.Radius)if__name__=='__main__':

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论