news 2026/7/2 3:50:21

函数与面向对象编程知识梳理

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
函数与面向对象编程知识梳理

目录

第一阶段:基础构建 (The Foundation)

第二阶段:OOP 三大支柱 (The Three Pillars)

第三阶段:工厂与构造技巧 (Creation & Structure)

第四阶段:Pythonic 黑魔法 (Advanced Magic)

👑 终极代码汇总:一个类包含所有知识点


这是一份关于 Python 函数与面向对象编程(OOP)的全景知识梳理

我们从最初的“定义一个类”,一路进阶到了“让类拥有魔法”。你可以把这看作是你目前的技术技能树

第一阶段:基础构建 (The Foundation)

核心思想:类是图纸,对象是实物。

知识点关键语法/代码核心作用
类的定义class Name:定义一个新的数据类型(图纸)。
占位符pass保持语法完整,暂时什么都不做。
初始化def __init__(self, ...)构造函数。创建对象时自动调用,给属性赋值。
实例引用self指代当前正在操作的那个对象(比如“这辆车”)。
普通方法def method(self):定义对象的行为(比如“跑”、“跳”)。

第二阶段:OOP 三大支柱 (The Three Pillars)

核心思想:代码复用、安全与灵活。

知识点关键语法/代码核心作用
1. 继承class Child(Parent):复用代码。子类拥有父类的所有能力。
保留父类功能super().__init__(...)在子类扩展功能时,不丢掉父类的初始化逻辑。
2. 封装self.__age(双下划线)安全。隐藏内部数据,不让外部直接随意修改。
3. 多态同名方法pay()灵活。不同的子类(支付宝/微信)对同一个指令做出不同反应。

第三阶段:工厂与构造技巧 (Creation & Structure)

核心思想:让对象的创建更加灵活、通用。

知识点关键语法/代码核心作用
不定长参数**kwargs接收任意数量的关键字参数,打包成字典。
安全取值kwargs.get("key", default)有参数就用参数,没参数就用默认值,防止报错。
类方法@classmethod+cls智能模具cls代表当前类,用于工厂模式,支持继承。
静态方法@staticmethod普通工具。不需要selfcls,仅仅是放在类里的普通函数。

第四阶段:Pythonic 黑魔法 (Advanced Magic)

核心思想:动态修改、优雅调用、像原生类型一样自然。

知识点关键语法/代码核心作用
类装饰器@decorator外部修改。不改源码,动态给类增加功能(如打标签、加日志)。
Monkey PatchClass.method = func动态补丁。运行时强行把外部函数塞进类里。
属性装饰器@property智能属性。把方法伪装成变量(obj.area),实现计算属性或读写控制。
Setter@name.setter配合@property,在赋值(obj.score=99)时进行数据检查。
魔法方法__str__print(obj)输出人类能看懂的字符串。
运算符重载__add__/__eq__让自定义对象支持+,-,==等符号运算。

👑 终极代码汇总:一个类包含所有知识点

为了让你一眼看懂这些概念是如何融合的,我写了一个集大成的SmartShape案例:

import math # --- 1. 装饰器 (给类动态打标签) --- def add_id(cls): cls.type_id = "SHAPE_001" return cls @add_id class SmartShape: # --- 2. 初始化与私有属性 (封装) --- def __init__(self, size): self._size = size # 内部存储,外部不直接碰 # --- 3. @property (把方法变属性,读写控制) --- @property def size(self): return self._size @size.setter def size(self, value): if value < 0: print("❌ 尺寸不能为负数!") else: self._size = value # --- 4. 普通方法 (需要重写的基类方法) --- def area(self): return 0 # --- 5. 类方法 (工厂模式 + **kwargs) --- @classmethod def create(cls, **kwargs): # cls 自动识别是哪个类在调用 val = kwargs.get("val", 1) return cls(val) # --- 6. 魔法方法 (自我介绍 + 运算) --- def __str__(self): return f"我是 {self.__class__.__name__},尺寸是 {self.size}" def __add__(self, other): # 两个形状相加,返回一个新的形状,尺寸叠加 return self.__class__(self.size + other.size) # --- 7. 继承 (多态) --- class Circle(SmartShape): def area(self): return math.pi * self.size ** 2 class Square(SmartShape): def area(self): return self.size ** 2 # === 测试运行 === # 使用工厂模式创建 c1 = Circle.create(val=10) # cls 变成了 Circle s1 = Square.create(val=5) # cls 变成了 Square # 测试装饰器 print(f"类型ID: {c1.type_id}") # 输出: SHAPE_001 # 测试 @property 和 Setter c1.size = 20 # 正常修改 c1.size = -5 # 输出: ❌ 尺寸不能为负数! # 测试多态 (同样的 .area() 方法,不同的计算公式) print(f"圆面积: {c1.area():.2f}") print(f"方面积: {s1.area()}") # 测试魔法方法 (__str__ 和 __add__) print(c1) # 输出: 我是 Circle,尺寸是 20 c2 = c1 + c1 # 两个圆相加 print(c2) # 输出: 我是 Circle,尺寸是 40
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/28 23:51:33

音乐解锁实战指南:一键解决加密音乐格式转换难题

音乐解锁实战指南&#xff1a;一键解决加密音乐格式转换难题 【免费下载链接】unlock-music-electron Unlock Music Project - Electron Edition 在Electron构建的桌面应用中解锁各种加密的音乐文件 项目地址: https://gitcode.com/gh_mirrors/un/unlock-music-electron …

作者头像 李华
网站建设 2026/7/1 11:20:08

15B小模型如何挑战千亿级性能?Apriel-1.5推理王来了

15B小模型如何挑战千亿级性能&#xff1f;Apriel-1.5推理王来了 【免费下载链接】Apriel-1.5-15b-Thinker 项目地址: https://ai.gitcode.com/hf_mirrors/unsloth/Apriel-1.5-15b-Thinker 导语&#xff1a;ServiceNow推出的150亿参数多模态推理模型Apriel-1.5-15b-Thin…

作者头像 李华
网站建设 2026/6/26 9:45:17

Dify在SEO标题生成中的关键词布局技巧

Dify在SEO标题生成中的关键词布局技巧 在内容为王的时代&#xff0c;一个网页能否被用户点击&#xff0c;往往取决于它的标题是否足够吸引人。而这个“吸引力”背后&#xff0c;其实是一场搜索引擎优化&#xff08;SEO&#xff09;与用户心理的双重博弈。传统的标题创作依赖编辑…

作者头像 李华
网站建设 2026/6/29 13:06:26

微信消息智能转发革命:wechat-forwarding 5分钟极速上手全攻略

在日常工作和生活中&#xff0c;我们经常需要在多个微信群之间同步重要信息&#xff0c;手动转发不仅耗时费力&#xff0c;还容易遗漏关键内容。今天介绍的 wechat-forwarding 开源工具&#xff0c;将彻底改变你的消息管理方式&#xff0c;实现微信群消息的智能自动转发。 【免…

作者头像 李华
网站建设 2026/7/2 3:08:23

Dify平台的古代语言风格模仿能力测试

Dify平台的古代语言风格模仿能力测试 在数字人文与AI技术交汇的今天&#xff0c;一个引人深思的问题浮现&#xff1a;机器能否真正“读懂”古文&#xff1f;更进一步——它是否能以古人之口吻言说&#xff0c;用《论语》的简练、唐诗的韵律、宋词的婉约来回应现代人的提问&…

作者头像 李华
网站建设 2026/7/2 3:02:00

Xenos终极DLL注入指南:快速掌握Windows进程注入技术

Xenos是一款专业的Windows动态链接库注入器&#xff0c;基于强大的Blackbone库构建&#xff0c;支持x86和x64架构进程注入操作。无论是安全研究、软件调试还是逆向工程&#xff0c;Xenos都能提供高效可靠的注入解决方案。 【免费下载链接】Xenos Windows dll injector 项目地…

作者头像 李华