news 2026/4/18 8:50:46

思考与练习(第十一章 面向对象编程基础)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
思考与练习(第十一章 面向对象编程基础)

一、单项选择题(本大题共 10 小题)

1、关于 Python 面向对象编程的四大特性,下列说法错误的是:

① 封装是将数据和方法组织在对象内部

② 继承是子类复用父类代码的机制

③ 多态是指一个类可以有多个实例

④ 抽象是关注“做什么”而不是“怎么做”

2、在 Python 中,类方法和实例方法的主要区别是:

① 类方法用 @classmethod 装饰,第一个参数是 cls

② 类方法不能访问实例属性

③ 实例方法通常通过对象调用

④ 以上都是

3、关于 Python 的私有成员,正确的说法是:

① 以双下划线 __ 开头的成员是私有的

② 私有成员不能在类外部直接访问

③ Python 通过名称改写实现私有性

④ 以上都是

4、以下代码的输出结果是:

class A: count = 0 def __init__(self): A.count += 1 a1 = A()a2 = A()print(A.count)

① 0

② 1

③ 2

④ 3

5、关于 super() 函数的作用,正确的是:

① 用于调用父类的方法

② 只能用在单继承中

③ 不能调用父类的 __init__ 方法

④ 会跳过父类直接调用祖父类的方法

6、鸭子类型(Duck Typing)的核心思想是:

① 关注对象的类型而非行为

② 关注对象的行为而非类型

③ 所有对象都必须继承自 Duck 类

④ 只处理鸭子类的对象

7、以下关于 @property 装饰器的说法,错误的是:

① 可以将方法当作属性访问

② 必须同时定义 getter 和 setter

③ 可以用于创建只读属性

④ 可以在 setter 中加入数据验证

8、关于 Python 的多继承与方法解析顺序(MRO),正确的是:

① Python 不支持多继承

② MRO 使用深度优先算法

③ MRO 使用 C3 线性化算法

④ 多继承时总是调用第一个父类的方法

9、抽象类的主要作用是:

① 提高程序执行效率

② 强制子类实现特定方法

③ 减少内存使用

④ 实现多线程

10、以下哪个原则明确提出“优先使用组合而不是继承”?

① 里氏替换原则

② 单一职责原则

③ 组合优于继承

④ 接口隔离原则

二、多项选择题(本大题共 15 小题)

1、Python 中实现封装的方式包括:

① 通过公有接口组织对外访问

② 使用受保护成员(_name)作内部约定

③ 使用私有成员(__name)进行名称改写

④ 使用 @property 控制访问行为(如只读/验证)

2、关于类属性与实例属性,正确的说法是:

① 类属性在所有实例间共享

② 实例属性每个实例独有

③ 修改实例的同名属性会修改类属性

④ 类属性可以通过类名或实例访问

3、Python 中的方法类型包括:

① 实例方法(第一个参数是 self)

② 类方法(@classmethod)

③ 静态方法(@staticmethod)

④ 私有方法(__name 约定)

4、以下属于魔术方法的是:

① __init__

② __str__

③ __eq__

④ __add__

5、面向对象编程的优点包括:

① 提高代码复用性

② 提高程序执行速度

③ 提高代码可维护性

④ 增强代码可扩展性

6、关于继承的设计原则,正确的是:

① 里氏替换原则:子类应能替代父类

② 单一职责原则:类的职责应单一

③ 组合优于继承:优先使用组合扩展功能

④ 深度继承:继承层次越深越好

7、多态的实现方式包括:

① 方法重写

② 鸭子类型

③ 抽象类提供接口规范

④ 多重继承

8、使用抽象类的好处包括:

① 定义统一的接口规范

② 防止抽象类被实例化

③ 强制子类实现特定方法

④ 提高代码执行效率

9、以下关于 Python 面向对象特性的说法,正确的是:

① Python 支持多重继承

② 一切皆对象

③ Python 有真正的私有成员

④ Python 支持运算符重载

10、良好的面向对象设计应遵循的原则包括:

① 高内聚、低耦合

② 依赖倒置原则

③ 接口隔离原则

④ 开闭原则

11、关于 Python 中 self 参数的说法,正确的是:

① 实例方法必须包含 self 参数且位于第一个

② self 表示调用方法的实例本身

③ 调用实例方法时不需要显式传递 self

④ self 只是约定名称,可以替换成其他名字

12、以下关于 Python 继承的描述,正确的是:

① 子类可以重写父类的任何公有方法

② 子类可以直接访问父类的私有成员

③ 子类可以调用父类的构造方法

④ 子类可以继承父类的类属性和实例属性

13、关于 @property 装饰器的使用场景,正确的是:

① 需要对属性进行验证时使用

② 需要将方法作为属性访问时使用

③ 需要创建只读属性时使用

④ 需要提高属性访问性能时使用

14、以下关于 Python 中抽象类的说法,正确的是:

① 抽象类不能被实例化

② 抽象类必须包含至少一个抽象方法

③ 抽象类可以包含具体方法

④ 子类必须实现所有抽象方法

15、关于“组合优于继承”原则的理解,正确的是:

① 组合比继承更灵活

② 组合可以减少类之间的耦合度

③ 组合更容易复用代码

④ 组合可以避免继承带来的层级复杂性

附:参考答案与解析

“点赞有美意,赞赏是鼓励”

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/18 8:27:35

Linly-Talker音频后处理模块:提升清晰度与饱满度

Linly-Talker音频后处理模块:提升清晰度与饱满度 在虚拟主播、智能客服和数字员工逐渐走入日常的今天,用户对交互体验的要求早已超越“能说话”这一基本功能。人们期待的是更自然、更具情感温度的声音表现——那种听起来像真人一样有呼吸感、有质感、有临…

作者头像 李华
网站建设 2026/4/18 8:15:44

从零开始训练 LLM 需要多长时间?

原文:towardsdatascience.com/how-long-does-it-take-to-train-the-llm-from-scratch-a1adb194c624?sourcecollection_archive---------1-----------------------#2024-10-28 估算训练 X 亿个 LLM、Y 万亿个 tokens 以及 Z 个 GPU 计算所需时间的指南 https://med…

作者头像 李华
网站建设 2026/4/16 17:12:42

打造虚拟客服新体验:Linly-Talker在金融行业的应用

打造虚拟客服新体验:Linly-Talker在金融行业的应用 在银行网点逐渐减少、客户对服务响应速度要求日益提高的今天,金融机构正面临一场深刻的数字化变革。用户不再满足于按键式语音导航或冷冰冰的文字机器人,他们期待的是能“听懂”自己问题、“…

作者头像 李华
网站建设 2026/4/18 8:29:07

Linly-Talker支持GPU显存预分配,避免OOM错误

Linly-Talker支持GPU显存预分配,避免OOM错误 在当前AI驱动的数字人应用快速普及的背景下,从虚拟主播到智能客服,用户对实时性与稳定性的要求越来越高。一个看似流畅的对话系统,背后往往需要同时调度语言模型、语音识别、语音合成和…

作者头像 李华
网站建设 2026/4/10 22:57:38

集成LLM+TTS+ASR,Linly-Talker实现真正实时对话

集成LLMTTSASR,Linly-Talker实现真正实时对话 在虚拟主播直播带货、银行数字柜员在线答疑、AI教师一对一授课的今天,用户早已不再满足于“播放一段预录视频”式的交互体验。他们期待的是——对面这个“人”,能听懂我刚说的话,立刻…

作者头像 李华