《Python程序设计任务驱动式教程练习题测试题复习题带答案单元测试 (10).docx》由会员分享,可在线阅读,更多相关《Python程序设计任务驱动式教程练习题测试题复习题带答案单元测试 (10).docx(4页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、单元6 类定义与使用(一)选择题1以下不属于面向对象的特征的是( D )。A封装 B继承C多态 D复合2定义类如下。class Test() pass下面说法正确的是( CD )。A该类实例中包含_dir_()方法B该类实例中包含_hash_()方法C该类实例中只包含_dir_()方法,不包含_hash_()方法D该类没有定义任何方法,所以该实例中没有包含任何方法3实现以下方法可以让对象像函数一样被调用的是( C )。Astr() Biter()Ccall() Dnext()4定义类如下。class Show: def showInfo(self): print(self.x)下面描述正确的是
2、( BC )A该类不可以实例化B该类可以实例化,但不能通过对象正常调用showInfo()C在PyCharm中该类实例化运行时会出现语法错误,显示“Show object has no attribute x”D该类可以实例化,并且能正常通过对象调用showInfo()5关于Python类说法错误的是( B )。A类的实例方法必须创建对象后才可以调用B类的实例方法必须在创建对象前才可以调用C类的类方法可以使用对象名和类名来调用D类的静态属性可以用类名和对象名来调用6定义类如下。class Show: def _init_(self,name): self.name=name def showI
3、nfo(self): print(self.name)下面代码能正常执行的是( C )。Ah = Showh.showInfo()Bh = Show()h.showInfo(张三)Ch = Show(张三)h.showInfo()Dh = Show(admin )showInfo7定义类如下:class A(): def a(self): print(a)class B(): def b(self): print(b)class C(): def c(self): print(c)class D(A, C): def d(self): print(d)d= D()d.a()d.c()d.d()
4、程序能执行的结果是( D )。Ad Ba,d Cd a Da c d8在类外部访问类内定义的类属性,有效的访问形式有( BD )。A属性名称B类名称.属性名称Cself.属性名称D类实例名称.属性名称9以下关于类属性的描述,正确的是( AB )。A类属性是在类中定义在方法之外的变量B类属性是所有实例化对象公用的,可以通过类名称或实例名称访问类属性C类属性只能通过实例名称访问,不能通过类名称访问D类属性通常在类的_init_()方法内部定义10以下关于实例属性的描述,正确的是( BCD )。A实例属性是所有实例化对象公用的,可以通过类名称或实例名称访问类属性B由于实例属性的优先级比类属性的高,相
5、同名称的实例属性将屏蔽掉类属性C实例属性只属于类的实例,只能通过实例名称访问D实例属性是指定义在方法内部的属性(二)填空题1Python使用 class 关键字来定义类。2Python内建异常类的基类是 BaseException 。3在Python中,不论类的名字是什么,构造方法的名字都是 _init_() 。4如果在设计一个类时实现了contains()方法,那么该类的对象会自动支持 in 运算符。5Python身份运算符 is 用于判断两个变量的引用对象是否为同一个。6在Python类的内部,使用def关键字可以定义属于类的方法,这种方法需要使用 classmethod 来修饰。7在Py
6、thon类的内部,可以定义静态方法,这种静态方法需要使用 staticmethod 来修饰。8Python中,类有一个名为 _init_() 的特殊方法称为构造方法,该方法在类实例化时会自动调用,不需要显式调用。9当内部作用域想修改外部作用域的变量时,需要使用关键字 global 。10Python中,可以通过 property 将一个方法转换为只读属性,从而实现专用于计算的属性。11在函数内部可以通过关键字 global 来定义全局变量。12可以使用内置函数 globals() 查看包含当前作用域内所有全局变量和值的字典。13可以使用内置函数 locals() 查看包含当前作用域内所有局部变
7、量和值的字典。(三)判断题1继承自threading.Thread类的子类中不能有普通的成员方法。( 错 )2Python中一切内容都可以称为对象。( 对 )3在一个软件的设计与开发过程中,所有类名、函数名、变量名都应该遵循统一的风格和规范。( 对 )4定义类时所有实例方法的第一个参数用来表示对象本身,在类的外部通过对象名来调用实例方法时不需要为该参数传值。( 对 )5在面向对象程序设计中,函数和方法是完全一样的,都必须为所有参数进行传值。( 错 )6Python中没有严格意义上的私有成员。( 对 )7在Python中定义类时,运算符重载是通过重写特殊方法实现的。例如,在类中实现了mul()方
8、法即可支持该类对象的*运算符。( 对 )8对于Python类中的私有成员,可以通过“类实例名称._类名称.私有成员名”的方式来访问。( 对 )9如果定义类时没有编写析构方法,Python将提供一个默认的析构方法进行必要的资源清理工作。( 对 )10在子类中可以通过“基类名.方法名()”的方式来调用基类中的方法。( 对 )11Python支持多重继承,如果父类中有相同的方法名,而在子类中调用时没有指定父类名,则Python解释器将从左向右按顺序进行搜索。( 对 )12在Python中定义类时实例方法的第一个参数名称必须是self。( 错 )13在Python中定义类时实例方法的第一个参数名称不管
9、是什么,都表示对象自身。( 对 )14定义类时如果实现了contains()方法,该类对象即可支持成员运算符。( 对 )15定义类时如果实现了len()方法,该类对象即可支持内置函数len()。( 对 )16定义类时如果实现了eq()方法,该类对象即可支持运算符“=”。( 对 )17定义类时如果实现了pow()方法,该类对象即可支持运算符“*”。( 对 )18在Python中定义类时,如果某个成员名称前有双下划线则表示是私有成员。( 对 )19在类外部没有任何办法可以访问对象的私有成员。( 错 )20Python类的构造方法是_init_()。( 对 )21定义类时,在一个方法前面使用clas
10、smethod进行修饰,则该方法属于类方法。( 对 )22定义类时,在一个方法前面使用staticmethod进行修饰,则该方法属于静态方法。( 对 )23通过对象不能调用类方法和静态方法。( 错 )24在Python中可以为自定义类的对象动态增加新成员。( 对 )25Python类不支持多重继承。( 错 )26属性可以像数据成员一样进行访问,但赋值时具有方法的优点,可以对新值进行检查。( 对 )27只可以动态地为对象增加数据成员,而不能为对象动态地增加成员方法。( 错 )28任何包含call()方法的类的对象都是可调用的。( 对 )29在Python中函数和类都属于可调用对象。( 对 )30
11、在设计子类时,父类的私有成员默认是不会继承的。( 对 )31不同作用域中的同名变量之间互相不影响,也就是说,在不同的作用域内可以定义同名的变量。( 对 )32全局变量会增加不同函数之间的隐式耦合度,从而降低代码可读性,因此应尽量避免过多使用全局变量。( 对 )33函数内部定义的局部变量当函数调用结束后被自动删除。( 对 )34在函数内部,既可以使用global关键字来声明使用外部全局变量,也可以使用global关键字直接定义全局变量。( 对 )35在函数内部没有办法定义全局变量。( 错 )36在同一个作用域内,局部变量会隐藏同名的全局变量。( 对 )37在函数内部没有任何声明的情况下直接为某个变量赋值,这个变量一定是函数内部的局部变量。( 对 )4