复习习题集仅为大二年级非计算机专业学生python面向对象考试复习使用(未完结)

页码取自Dusty Phillips的Python 3 面向对象编程(第二版)

1.以下哪个不是面向对象程序设计的特点?( C )
A.多态
B.继承
C.嵌套
D.封装

解析:面向对象程序设计有4个主要特点,分别是:抽象、封装、继承、多态。

2.以下关于面向对象程序设计中的对象的说法,正确的是?( C )
A.对象是属性与数据的集合
B.必须是在现实中存在的实体才能被看作对象
C.一个对象可以包含其他对象
D.在python中,浮点数float是组成对象的基本元素,float变量不是对象

解析:类是属性与行为的集合;对象是数据与相关行为的集合,是类的具体实例。显然,答案选C。P3 对象和类

3.以下关于类与对象的说法,错误的是?( B )
A.python中一切变量都是变量,类也是一种对象
B.子类对象不能被当作父类对象使用
C.类是对对象的抽象
D.对象是类的实例

解析:子类对象赋值给父类对象即可将子类当作父类使用。P13 继承

4.python里面如何将一个对象的属性定义为私有属性?( B )
A.public:self.xxx = 123
B.self.__xxx = 123
C.private:self.xxx = 123
D.private{self.xxx = 123}

解析:只需要在属性前加上双下划线。P44 谁可以访问我的数据

5.以下关于继承的说法,错误的是?( D )
A.继承可以实现代码复用,减少重复的代码
B.python中通过在定义类的时候,指定父类,从而实现继承
C.子类可以覆盖父类的方法和属性,子类也可以调用父类的方法
D.被继承的父类拥有子类的所有属性与方法,父类可以当作子类使用

解析:减少冗杂代码是种核心素养!将父类名放入基本类的类名后及冒号之前的括号内即可实现继承。子类继承父类的所有的非私有的方法和属性。P58 基本的继承

6.以下关于多态的说法,错误的是?( A )
A.python可以定义不同类型的参数,并创建多个同名的方法,从而实现多态
B.python可以让方法接受不同数量的参数,从而实现多态
C.python可以让方法接受不同关键字的参数,从而实现多态
D.python可以在方法内判断参数的类型,从而实现多态

解析:使用继承、给函数传递不同的参数可实现多态 。P74 多态

7.以下说法错误的是?( B )
A.隐藏对象具体实现或功能细节的过程,被称为信息隐藏
B.被封装的数据一定是隐藏的
C.设计公共接口的时候要谨慎,因为公共接口一旦定义,很难更改
D.抽象是对于对象的高度概括,也是信息隐藏的一种

8.有这样一段程序:
class MyClass():
    def __init__(self):
        print("Hello", end=" ")
    def __repr__(self):
        return "Hello World"
if __name__ == "__main__":
    obj = MyClass()
    print(obj)
则程序最后的输出为?( D )
A.Hello
B.World
C.Hello World
D.Hello Hello World

解析:__init__方法中输出”Hello“,end=” “不换行,__repr__()方法,输入该方法的返回值(必须是字符串),即”Hello World“,所以最终输出的是”Hello Hello World“。其他常用魔术方法可:Python常用魔术方法 - 知乎 (zhihu.com)

9.如何在定义一个类时,定义对象的属性?( C )
A.将定义写在类名的下面
B.将定义写在_init_方法中
C.将定义写在__init__方法中
D.将定义写在类名后面的括号中

解析:初始化方法__init__ P32 初始化对象

10.有一个类的定义如下:
class Book():
    def read(self, reader_name):
        print(f"读者{reader_name}, 欢迎读书")
有一个该类的实例,叫做mybook,类外如何正确调用read方法?( B )
A.Book.read("小明")
B.mybook.read("小明")
C.mybook.read(mybook, "小明")
D.mybook.read(self, "小明")

11.在sys.path对应的路径下,有以下目录结构:
|--utils(文件夹)
|    |--__init__.py
|    |--database.py
|
|--bottle.py
以下说法正确的是?( C )
A.可以通过import database.py导入database.py文件
B.bott1e.py和database.py位于同一个包
C.可以通过from utils import database来导入database.py文件
D.可以通过import uti1s.bott1e来导入bottle.py文件

解析:一个 .py 文件可以称为模块,包含了 __init__.py 文件的称为包,可以使用 import <> 或 from <> import <> 这两种语法。A项应为import utils.database.py。P39 绝对导入

12.以下说法正确的是?( D )
A.对象里面_一个下划线开头的属性是隐藏属性,在类外无法访问
B.对象里面__两个下划线开头的属性是隐藏属性,在类外无法访问
C.对象的属性一定要定义成隐藏属性,只暴露方法来给类外使用
D.在对象的类以外使用对象时,下划线开头的属性不建议使用

13.关于继承,以下说法正确的是?(  )
A.子类只能继承父类的非隐藏属性和方法
B.python里面所有的类都继承自object
C.python使用extends关键字定义类的继承关系
D.python允许多重继承,但是不允许菱形继承

14.为了继承父类的属性和方法,以下做法错误的是?( D )
A.在定义类时申明继承父类
B.在初始化方法中调用父类的初始化方法
C.重写父类方法时,在方法中调用父类的方法
D.重新定义父类所有的方法,用pass作为方法内容

解析:初始化方法中super调用父类,D项中的做法没必要重新父类所有方法,如果有必要也不需要pass。P62重写和super

15.关于异常,以下说法正确的是?( A )
A.在方法中间抛出异常,抛出异常之后的代码不会继续执行
B.异常是python内置的类,无法被开发者定义的类继承
C.网络操作和文件操作容易产生异常,要求必须捕获异常,否则程序不能运行
D.python中抛出异常的关键字是throw

解析:A项可以自行试试,五行代码得出结果;对于B项,python中所有的类都可以被继承;C项中的必须有点那啥,不能运行倒确实;D项,应该是“raise”关键字,throw又是java的关键字,上面的public和private也是。P99 异常的作用

16.给一个对象添加属性,错误的做法是?( B )
A.使用setattr方法直接给对象添加属性
B.定义在class代码块里面,如:
class obj():
    XXX=123
C.使用@property装饰器将一个方法定义成属性
D.在类的初始化方法中,赋值给self.xxx,如:
class obj():
def __init__(self):
        self.xxx = 123

解析:A项,setattr(object, name, value),通过语法显而易见做法是正确的;B项,self.xxx = ###如D项;C项,P133 装饰器——另一种创建属性的方法。

17.元组是python内置的一种数据类型,以下说法错误的是?( D )
A.使用for循环可以遍历元组对象
B.可以定义方法接受不定个数的参数,实际传入方法的参数将会是一个元组
C.有元组t=(1,2,3),t[0]=3的赋值操作会出错
D.有元组t=([1,2,3],[4,5,6]),t[0][0]=3的赋值操作会出错

解析:C项,元组中的元素值不允许修改;D项,并不会,此元组中的元素是两个列表(使用[]),赋值语句t[0][0]指向第一个元素列表的第一个值,即1,此时变的是第一个列表的元素,而不应该是元组的元素,元组的指向是不变的。P155 元组和命名元组

18.关于python中的字典类型,以下说法错误的是?( D )
A.字典是表示键与值之间一一对应关系的一种数据类型
B.使用字典可以根据键找到对应的值
C.使用for循环遍历的是字典的键
D.使用for循环遍历的是字典的值

解析:存储的对象被称为值,作为索引的对象被称为键,for循环也就是指针变动,遍历的是索引对象。P159 字典

19.关于python中的列表类型,以下说法正确的是?( A )
A.使用内置的len函数可以得到列表的长度
B.列表里面的元素必须是相同类型的
C.列表的长度是固定的,超过列表容量将出错
D.通过下标访问非空列表时,下标不能为负数

解析:B项,不用跟python谈类型(至少现在不需要);C项,python中,列表是动态的,可以随意添加和删除,当然在索引的时候超出范围会抛出异常;D项,反向索引:???P166 列表 P195 Python内置函数

20.python里面有许多魔术方法,关于它们的功能描述错误的是?( B )
A.__enter__方法:用于上下文管理器,在进入上下文时调用
B.__exit__方法:在程序退出时调用,用于执行释放已打开的资源等操作
C.__len__方法:可以使用内置len函数求对象的长度
D.__getitem__方法:通过下标访问对象的内容时会调用该方法

解析:Python常用魔术方法 - 知乎 (zhihu.com)

21.python中所有对象的共同父类是(object)

解析:了解一下的是在py2中使用 super 进行父类构造调用时必须使用 object 继承的新式类。

22.定义一个类时,初始化方法的名称是(__init__)

解析:但凡写过的人都知道吧。

23.要捕获一段代码中可能出现的异常,可以使用(try/excpt)关键字

解析:P101 处理异常

24.一行代码给a与b赋值(即元组解包):(a,b) = (1,2)

解析:元组解包有一对一解包,即一一对应关系;还可以用下划线_表示不需要的元素,使用*捕获全部元素等方法。

25.阅读以下程序:

class Point(object):
    def __init__(self, x, y)
        self.x = x
        self.y = y

def draw(self):
        print(f"{self.x},{self.y}")

class MyPoint(Point):
    def __init__(self, base):
        super().__init__(base, base)
        
if __name__=="__main__"
    p = MyPoint(16)
    p.draw()

程序的输出是(16, 16)

解析:传给MyPoint一个参数“16”,base获得“16”,super方法继承Point父类的初始化方法__init__,Point类初始化方法里x, y分别获得“16”这个参数,调用draw()方法即输出“16,16”

2021面向对象程序设计复习习题集相关推荐

  1. 【软考】面向对象程序设计复习指南

    1.根据考纲 (1)分析模式与设计模式知识 (2)面向对象程序设计知识 (3)用C++语言实现常见的设计模式及应用程序. (4)用Java语言实现常见的设计模式及应用程序. 2.面向对象基本概念 面向 ...

  2. 期末Java面向对象程序设计复习稳过不挂指南(更新中)

    目录 第三章.java类基础知识 第四节.自定义函数 ·同一个类中,函数名称可以相同,即重载函数(overload),但函数参数的个数或者类型必须不同 第四章.面向对象和类 第一节.面向对象思想 ·对 ...

  3. C# 面向对象程序设计复习

    字段与属性.cs   属性.方法作用范围.cs   一加到一百.cs   使用接口排序(2).cs   使用接口排序(1).cs   求质数.cs   冒泡法排序.cs   九九表.cs   静态与非 ...

  4. python类与对象作业_荐富贵和你一起复习Python(第10篇)— 面向对象程序设计

    继续复习Python,今日复习 -- 面向对象程序设计,中间会有自己的心得体会,要是有什么错误或者补充可直接评论或者私信哟. 面向对象程序设计 面向对象程序设计的思想主要针对大型软件设计提出,能够很好 ...

  5. java面向对象程序设计题库_java面向对象程序设计习题集.doc

    java面向对象程序设计习题集.doc 1JAVA 面向对象程序设计习题集 23目 录引 言 .6第一章 JAVA 基础 7一.填空题 7二.判断题 9三.选择题 9四.程序阅读题 26第二章 控制结 ...

  6. c语言规定变量有三种属性分别是,C++面向对象程序设计重点复习资料

    <C++面向对象程序设计重点复习资料>由会员分享,可在线阅读,更多相关<C++面向对象程序设计重点复习资料(7页珍藏版)>请在人人文库网上搜索. 1.面向对象程序设计复习题一. ...

  7. 面向对象程序设计(JAVA)复习笔记(上)

    文章目录 一.JAVA语言基础知识 变量和常量 标准输入输出 数组 数组的声明 数组的创建 数组元素的初始化 数组的引用 多维数组 二.类和对象的基本概念 面对对象程序设计方法概述 类的声明 对象的声 ...

  8. Java面向对象程序设计 期末复习

    第1章 1.Java应用程序分几类?各有什么特点? 不同的Java程序运行在不同的环境中,习惯上将运行环境相同的Java程序归为一类,可以分3类: Java Application应用程序,属于Jav ...

  9. [XJTUSE]面向对象考试复习指南

    文章目录 面向对象考试复习指南 1.语言基础 (1) Java语言的历史和Java程序的执行机制 1)Java成员 2)Java历史 3)JDK.JRE.JVM.API.GC 4)Java程序执行机制 ...

最新文章

  1. 云计算时代的虚拟化安全
  2. C++知识点54——RTTI(运行时类型识别)
  3. Andrew Ng机器学习(二):逻辑回归
  4. ac9560不支持承载_Win10不支持承载网络的解决方法
  5. 告诉SEO初学者:百度收录并非终极目标
  6. flask模型中【外键】relationship的使用笔记
  7. sql中count(1)、count(*)和count(字段名)的区别
  8. 红衣大炮的飞秋实现原理
  9. 【Maven】3.使用IntelliJ IDEA 使用本地搭建的maven私服,而不是使用默认的maven设置...
  10. 雷军:小米9完全开放购买 全面现货供应
  11. mysql主从同步故障整理
  12. RPM是RedHat Package Manager(RedHat软件包管理工具)
  13. makefile:425: *** 遗漏分隔符
  14. 啤酒游戏及其牛鞭效应的vensim模拟
  15. 小米android11账号补丁,小米9 MIUI11 解账户锁 可登小米账号 永不反锁 完美ROOT 解锁包...
  16. C++ Opencv安装学习笔记
  17. 冰点还原标准版-中文版(全面支持Windows 7)7.0.020.3172(最新版)下载与注册
  18. 从0到1CTFer成长之路环境搭建详细教程
  19. 诡辩六论——微信陌陌如何话题不断的聊天
  20. 计算机如何理解图像?

热门文章

  1. Windows组策略屏蔽U盘
  2. delphi xe3 mysql,Mysql ZeosLib Delphi XE3
  3. poj1734 最小环
  4. UITableView的分割线设为虚线
  5. 谈编程思维的培养,初学者如何实现自我突破(非常重要)
  6. banner前后两张图实现滑动前景图背景图渐变效果(类似自如app的banner效果)
  7. 【源码】reportgen:Matlab自动生成WORD/PPT的实用技巧
  8. Linux系统如何安装apache,和DNS服务并进行应用
  9. 【MATLAB】三维图形绘制 ( 绘制球面 | sphere 函数 | 设置光源 | light 函数 | 相机视线 | view 函数 )
  10. Excel导入导出工具类(多sheet、多表头、单元格下拉选择、根据列名匹配转为List)