Python程序设计基础项目化教程习题项目十类与对象高级应用.docx
-
资源ID:7028223
资源大小:17.34KB
全文页数:5页
- 资源格式: DOCX
下载积分:5金币
友情提示
2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
|
Python程序设计基础项目化教程习题项目十类与对象高级应用.docx
类与对象高级应用测试习题测试习题一、填空题1. Python提供了变量以限制可动态扩展的属性。2. Python提供了装饰器,可以将类中属性的访问和赋值操作自动转为方法调用,这样可以在方法中对属性值的取值范围做一些条件限定。3. 直接使用PrOPerty可以定义一个用于获取属性值的方法(即getter如果需要对属性score定义一个设置属性值的方法(setter),需要用到的装饰器为O4. 可以看成是创建类时所使用的模板,也可以理解为是用于创建类的类。5. 是指在程序运行时确保某个类最多只有一个实例对象。6. 在执行_init_前,还会执行类的一个内置的类方法,其作用是创建对象并返回。二、选择题1 .关于类方法的说法错误的是()A.类方法是指使用dassmethod修饰的方法B.类方法的第一个参数是类本身(而不是类的实例对象)C.类方法既可以通过类名直接调用,也可以通过类的实例对象调用。D.类方法只能通过类名直接调用2 .关于静态方法的说法错误的是()A.静态方法是指使用StatiCmethod修饰的方法B.静态方法的第一个参数是类本身(而不是类的实例对象)C.静态方法既可以通过类名直接调用,也可以通过类的实例对象调用。D.静态方法中没有类方法中的第一个类参数3 .已知Complex类的类方法add(ds,cl,c2)实现两个复数的相加运算,程序可以使用不同的方式调用该方法,下面错误的调用方式是()A. c3=Complex.add(clzc2)B. c3=cl.add(cl,c2)C. c3.add(Complex,clC2)D. c3=Complex().add(cl,c2)4 .关于动态扩展类的说法正确的是()A. Python除了可以在定义类时定义属性和方法外,还可以动态地为已经创建的对象绑定新的属性和方法B. Python只能在定义类时定义属性和方法,不能动态扩展C. Python只能动态扩展属性,不能动态扩展方法D. Python只能动态扩展方法,不能动态扩展属性三、简答题1.下面程序对圆柱体类Cylinder实现动态绑定方法,请将程序填写完整。fromtypesimportMethodType#从types模块导入MethodType方法classCylinde匚passdefSetRadius(selfzr):self.Radius=rdefSetHeight(selfzh):self.Height=hif_name_='_main_':cl=Cylinder()c2=Cylinder()#为cl对象绑定SetRadius方法cl.SetRadius=(SetRadiuszCl)#为Cylinder类绑定SetHeight方法CyIinderSetHeight=cl.SetRadius(10)c2.SetRadius(20)#c2对象未绑定SetRadius方法,此语句有误cl.SetHeight(30)c2.SetHeight(40)2.写出下面程序的运行结果。classCylinder:Radius=5Height=IOdefDispIay(SeIf):Print("圆柱体半径为",self.Radius)classCircle:Radius=50defDispIay(SeIf):Print("圆半径为",self.Radius)if_name_='_maincl=Cylinder()c2=Circle()cl.Display()c2.DispIayO