Python 面向对象三大基础:封装、组合、继承 一、封装把数据和配套操作打包放一块先说封装最简单一句话东西和操作它的方法塞到同一个类里不让外面随便乱改数据。拿我们写的Student学生类举例子 学生有学号、名字、年龄、性别这些信息这是 “数据”还有查询学生、修改学生信息、打印学生信息的函数这是 “操作”。 以前写代码可能把名字、年龄单独放变量改年龄、查名字单独写函数乱七八糟散得到处都是。封装之后全部装进Student这个类里面一个学生就是一个完整对象。配套的StudentManage也是封装思路所有添加、删除、修改学生的功能全放这个类不用到处找零散代码。 好处特别实在想改学生相关功能只找这一个类就行不会牵一发而动全身改乱别的代码。二、组合把别的类当成自己的 “配件”组合和继承经常搞混我分清楚了组合是我里面装别人是 “拥有” 关系。参考课本里汽车、人的例子一个人拥有一辆车、一张身份证、一把武器所以Person类里面直接放Car、Card、Weapon的实例这就是组合。放到我们的成绩管理系统里更好理解 总控类SystemManage里面写了三行代码self.student_manage StudentManage() self.course_manage CourseManage() self.score_manage ScoreManage()系统 “拥有” 学生管理、课程管理、成绩管理三个工具类想要添加学生就调用self.student_manage里的方法这就是标准组合写法。没有组合的话所有菜单、增删学生、录入成绩代码全堆在一个大类里几百行挤在一起找功能能看花眼三、继承子类复刻老爸还能自己加新本事继承是 “父子关系”儿子能直接拿走父亲所有属性和功能还能自己新增、改写方法。课本里Person是父类普通人有姓名、年龄能打印个人信息SuperPerson是子类除了拥有普通人全部东西额外多了技能属性。 用super().__init__()调用父类构造方法不用重复写姓名、年龄代码少写超多重复内容。 还能重写父类的get_info、__str__方法在原有基础上追加子类独有的内容不用完全重写一遍。四、三者结合我们的学生成绩系统就是完整案例我们写的系统严格拆了 7 个类刚好把封装 组合全部用上实体类Student/Course/Score纯封装只存对应数据重写打印方法管理类StudentManage/CourseManage/ScoreManage封装所有增删改查操作SystemManage总控类用组合把三个管理类装在内部统一调度菜单。

相关新闻

最新新闻

SerenityOS 命令行选项解析指南:getopt 与 getopt_long 用法、返回值与底层实现

SerenityOS 命令行选项解析指南:getopt 与 getopt_long 用法、返回值与底层实现

SerenityOS 命令行选项解析指南:getopt 与 getopt_long 用法、返回值与底层实现 【免费下载链接】serenity The Serenity Operating System 🐞 项目地址: https://gitcode.com/GitHub_Trending/se/serenity 导读 本文以 getopt(3) 手册 为核心&a…

2026/10/3 16:42:15
轻量服务器还是ECS?大促云服务器选购与避坑实战指南

轻量服务器还是ECS?大促云服务器选购与避坑实战指南

每年大促节点,群里永远有人在问同一个问题:“38元的轻量服务器到底怎么抢?为什么我每次点进去都是已售罄?68元直购和99元的ECS我到底选哪个?”作为一个常年帮团队和自己采购云服务器的老用户,我太清楚这种纠…

2026/10/3 16:42:30
为 AI 代理的 Review 动作编写 Cedar 审批门控策略:review-agent-governance 策略编写实战指南

为 AI 代理的 Review 动作编写 Cedar 审批门控策略:review-agent-governance 策略编写实战指南

为 AI 代理的 Review 动作编写 Cedar 审批门控策略:review-agent-governance 策略编写实战指南 【免费下载链接】agents Multi-harness agentic plugin marketplace for Claude Code, Codex, Cursor, OpenCode, GitHub Copilot, and Google Antigravity 项目地址:…

2026/10/3 16:42:22
PaddleOCR 手写数学公式识别算法 CAN 实战指南:Counting-Aware Network 训练、评估与推理部署

PaddleOCR 手写数学公式识别算法 CAN 实战指南:Counting-Aware Network 训练、评估与推理部署

PaddleOCR 手写数学公式识别算法 CAN 实战指南:Counting-Aware Network 训练、评估与推理部署 【免费下载链接】PaddleOCR Turn any PDF or image document into structured data for your AI. A powerful, lightweight OCR toolkit that bridges the gap between i…

2026/10/3 7:41:27
Spring源码解析:构造器注入的类型转换与候选匹配机制

Spring源码解析:构造器注入的类型转换与候选匹配机制

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/3 16:42:24
openai-agents-python 多模型接入指南:深入解析 AnyLLMModel 适配层与 any-llm 路由

openai-agents-python 多模型接入指南:深入解析 AnyLLMModel 适配层与 any-llm 路由

openai-agents-python 多模型接入指南:深入解析 AnyLLMModel 适配层与 any-llm 路由 【免费下载链接】openai-agents-python A lightweight, powerful framework for multi-agent workflows 项目地址: https://gitcode.com/GitHub_Trending/op/openai-agents-pyth…

2026/10/3 16:42:28

日新闻

周新闻

月新闻