单元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小时内删除。