单元6 类定义与使用
(一)选择题
1.以下不属于面向对象的特征的是( D )。
A.封装
B.继承
C.多态
D.复合
2.定义类如下。
class Test()
pass
下面说法正确的是( CD )。
A.该类实例中包含__dir__()方法
B.该类实例中包含__hash__()方法
C.该类实例中只包含__dir__()方法,不包含__hash__()方法
D.该类没有定义任何方法,所以该实例中没有包含任何方法
3.实现以下方法可以让对象像函数一样被调用的是( C )。
A.str()
B.iter()
C.call()
D.next()
4.定义类如下。
class Show:
def showInfo(self):
pubg登录界面图片 print(self.x)
下面描述正确的是( 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 showInfo(self):
print(self.name)
下面代码能正常执行的是( C )。
A.
h = Show
h.showInfo()
B.
h = Show()
h.showInfo("张三")
C.
h = Show("张三")
h.showInfo()
D.
h = Show('admin ')
showInfo
7.定义类如下:
redis原生命令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()
程序能执行的结果是( D )。
A.d
B.a,d
C.d a
python基础教程电子书英文版D.a c d
8.在类外部访问类内定义的类属性,有效的访问形式有( BD )。
A.属性名称
B.类名称.属性名称
C.self.属性名称
D.类实例名称.属性名称
9.以下关于类属性的描述,正确的是( AB )。
A.类属性是在类中定义在方法之外的变量
B.类属性是所有实例化对象公用的,可以通过类名称或实例名称访问类属性
C.类属性只能通过实例名称访问,不能通过类名称访问
D.类属性通常在类的__init__()方法内部定义
10.以下关于实例属性的描述,正确的是( BCD )。
A.实例属性是所有实例化对象公用的,可以通过类名称或实例名称访问类属性
B.由于实例属性的优先级比类属性的高,相同名称的实例属性将屏蔽掉类属性
C.实例属性只属于类的实例,只能通过实例名称访问
D.实例属性是指定义在方法内部的属性
(二)填空题
1.Python使用{ class }关键字来定义类。
2.Python内建异常类的基类是{ BaseException }。
3.在Python中,不论类的名字是什么,构造方法的名字都是{ __init__() }。
4.如果在设计一个类时实现了contains()方法,那么该类的对象会自动支持{ in }运算符。
5.Python身份运算符{ is }用于判断两个变量的引用对象是否为同一个。
6.在Python类的内部,使用def关键字可以定义属于类的方法,这种方法需要使用{ @classmethod }来修饰。
7.在Python类的内部,可以定义静态方法,这种静态方法需要使用{ @staticmethod }来修饰。
8.Python中,类有一个名为{ __init__() }的特殊方法称为构造方法,该方法在类实例化时会自动调用,不需要显式调用。
9.当内部作用域想修改外部作用域的变量时,需要使用关键字{ global }。
10.Python中,可以通过{ @property }将一个方法转换为只读属性,从而实现专用于计算的属性。
11.在函数内部可以通过关键字{ global }来定义全局变量。
12.可以使用内置函数{ globals() }查看包含当前作用域内所有全局变量和值的字典。
13.可以使用内置函数{ locals() }查看包含当前作用域内所有局部变量和值的字典。
(三)判断题
1.继承自threading.Thread类的子类中不能有普通的成员方法。( 错 )
2.Python中一切内容都可以称为对象。( 对 )
3.在一个软件的设计与开发过程中,所有类名、函数名、变量名都应该遵循统一的风格和规范。( 对 )
4.定义类时所有实例方法的第一个参数用来表示对象本身,在类的外部通过对象名来调用实例方法时不需要为该参数传值。( 对 )
5.在面向对象程序设计中,函数和方法是完全一样的,都必须为所有参数进行传值。( 错 )
6.Python中没有严格意义上的私有成员。( 对 )
7.在Python中定义类时,运算符重载是通过重写特殊方法实现的。例如,在类中实现了mul()方法即可支持该类对象的**运算符。( 对 )
html在线编辑器怎么下载源码8.对于Python类中的私有成员,可以通过“类实例名称._类名称.私有成员名”的方式来访问。( 对 )
9.如果定义类时没有编写析构方法,Python将提供一个默认的析构方法进行必要的资源清理工作。( 对 )
10.在子类中可以通过“基类名.方法名()”的方式来调用基类中的方法。( 对 )
11.Python支持多重继承,如果父类中有相同的方法名,而在子类中调用时没有指定父类名,则Python解释器将从左向右按顺序进行搜索。( 对 )
12.在Python中定义类时实例方法的第一个参数名称必须是self。( 错 )
pascal 语言13.在Python中定义类时实例方法的第一个参数名称不管是什么,都表示对象自身。( 对 )
14.定义类时如果实现了contains()方法,该类对象即可支持成员运算符。( 对 )
15.定义类时如果实现了len()方法,该类对象即可支持内置函数len()。( 对 )
16.定义类时如果实现了eq()方法,该类对象即可支持运算符“==”。( 对 )
17.定义类时如果实现了pow()方法,该类对象即可支持运算符“**”。( 对 )
18.在Python中定义类时,如果某个成员名称前有双下划线则表示是私有成员。( 对 )
19.在类外部没有任何办法可以访问对象的私有成员。( 错 )
20.Python类的构造方法是__init__()。( 对 )
21.定义类时,在一个方法前面使用@classmethod进行修饰,则该方法属于类方法。( 对 )
22.定义类时,在一个方法前面使用@staticmethod进行修饰,则该方法属于静态方法。( 对 )
23.通过对象不能调用类方法和静态方法。( 错 )
24.在Python中可以为自定义类的对象动态增加新成员。( 对 )
25.Python类不支持多重继承。( 错 )
26.属性可以像数据成员一样进行访问,但赋值时具有方法的优点,可以对新值进行检查。( 对 )
27.只可以动态地为对象增加数据成员,而不能为对象动态地增加成员方法。( 错 )
28.任何包含call()方法的类的对象都是可调用的。( 对 )
29.在Python中函数和类都属于可调用对象。( 对 )
30.在设计子类时,父类的私有成员默认是不会继承的。( 对 )
31.不同作用域中的同名变量之间互相不影响,也就是说,在不同的作用域内可以定义同名的变量。( 对 )
32.全局变量会增加不同函数之间的隐式耦合度,从而降低代码可读性,因此应尽量避免过多使用全局变量。( 对 )
33.函数内部定义的局部变量当函数调用结束后被自动删除。( 对 )
高一网课免费平台34.在函数内部,既可以使用global关键字来声明使用外部全局变量,也可以使用global关键字直接定义全局变量。( 对 )
35.在函数内部没有办法定义全局变量。( 错 )
36.在同一个作用域内,局部变量会隐藏同名的全局变量。( 对 )
37.在函数内部没有任何声明的情况下直接为某个变量赋值,这个变量一定是函数内部的局部变量。( 对 )
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论