Python 异步与面向对象:从“指令”到“架构”的范式跃迁
文章目录序幕代码的两次进化第一模块异步编程 —— 让代码学会“一心多用”1.1 同步 vs 异步从“排队”到“并行等待”同步你点了一杯咖啡站着干等异步同时下单谁先好先拿谁1.2 三大核心概念1.3 关键语法对比表第二模块面向对象 —— 从函数到蓝图从蓝图到生命2.1 为什么需要面向对象2.2 类与对象蓝图与实体的关系2.3 类的定义与实例化2.4 __init__ 初始化方法 —— 对象诞生的第一声啼哭self 是什么2.5 完整示例一个活的学生类2.6 类的属性与实例的属性 今日核心知识速查异步模块面向对象模块终章你站在了哪里序幕代码的两次进化如果把写代码比作盖房子那你之前学的东西——变量、函数、循环、装饰器——都是在搬砖。你把一块块砖码得整整齐齐房子能住人但经不起大风大浪。今天我们要完成两次跃迁第一次跃迁异步编程—— 把代码从“单线程苦力”变成“多任务总管”。以前你写代码是干完一件事再干下一件现在你能同时等好几件事谁先准备好就先处理谁效率直接拉满。第二次跃迁面向对象编程OOP—— 把代码从“一堆散装函数”变成“一个有血有肉的系统”。你不再写“先做A再做B再做C”而是创造一个世界里面住着各种“对象”它们各有属性、各有技能互相协作完成目标。如果说之前的你是个会写脚本的程序员今天之后你就是一个能设计系统的架构师。这不是风格的微调是维度的提升。准备好了吗开始。第一模块异步编程 —— 让代码学会“一心多用”1.1 同步 vs 异步从“排队”到“并行等待”同步你点了一杯咖啡站着干等pythonimport time def make_coffee(): time.sleep(3) # 咖啡机工作3秒 return ☕ 咖啡好了 def toast_bread(): time.sleep(2) # 烤面包机工作2秒 return 吐司好了 def breakfast(): coffee make_coffee() # 先做咖啡干等3秒 toast toast_bread() # 再做吐司干等2秒 return coffee, toast start time.time() print(breakfast()) print(f总耗时{time.time() - start:.1f}秒)输出text(☕ 咖啡好了, 吐司好了) 总耗时5.0秒 同步的问题是CPU在等但你无能为力。咖啡机工作的时候CPU什么都不干就在那儿等着。5秒钟做两件事效率极低。异步同时下单谁先好先拿谁pythonimport asyncio async def make_coffee(): await asyncio.sleep(3) # 模拟等待但CPU不闲着 return ☕ 咖啡好了 async def toast_bread(): await asyncio.sleep(2) return 吐司好了 async def breakfast(): # 同时发起两个任务 coffee_task asyncio.create_task(make_coffee()) toast_task asyncio.create_task(toast_bread()) # 等待两个都完成 coffee await coffee_task toast await toast_task return coffee, toast start time.time() result asyncio.run(breakfast()) print(result) print(f总耗时{time.time() - start:.1f}秒)输出text(☕ 咖啡好了, 吐司好了) 总耗时3.0秒 异步的威力同时发起两个任务总耗时等于最慢的那个而不是相加。咖啡3秒吐司2秒总耗时3秒。省了2秒。1.2 三大核心概念概念写法作用异步函数async def func():定义一个可暂停的函数等待await 异步操作在异步函数里等待另一个异步操作完成任务asyncio.create_task()把一个异步函数包装成“可并发执行的任务”1.3 关键语法对比表同步写法异步写法区别def func():async def func():函数变“异步”time.sleep(1)await asyncio.sleep(1)等待时不阻塞result func()result await func()等待异步结果func()asyncio.run(func())启动异步入口第二模块面向对象 —— 从函数到蓝图从蓝图到生命2.1 为什么需要面向对象你之前写的代码都是“先做A再做B再做C”的过程式代码。函数多了之后你会发现数据到处乱飞不知道哪个函数改了哪个变量想复用一段逻辑复制粘贴改来改去需求一变改一个地方要牵连十几个函数面向对象编程OOP把世界拆解成“对象”。每个对象有自己的属性数据和方法行为。对象之间通过消息通信各司其职。 打个比方面向对象不是“做菜流程”而是“一个厨房”。厨房里有厨师、烤箱、冰箱、刀具。每个东西都有自己的属性和功能你只需要说“做一顿饭”它们自己协作完成。2.2 类与对象蓝图与实体的关系概念比喻代码层面类Class建筑图纸class Student:对象Object根据图纸盖出来的楼s1 Student()属性Attribute楼的高度、颜色s1.name 小明方法Method楼能干什么开灯、关门s1.study()类是抽象的模板对象是具体的实体。一份图纸可以盖一万栋楼一个类可以创建无数个对象。2.3 类的定义与实例化pythonclass Student: 学生类 —— 所有学生的蓝图 pass # 实例化根据蓝图创造具体的学生 s1 Student() s2 Student() print(s1) # __main__.Student object at 0x... print(s2) # __main__.Student object at 0x...2.4__init__初始化方法 —— 对象诞生的第一声啼哭__init__是 Python 里的构造方法在对象被创建时自动调用用来给对象设置初始属性。pythonclass Student: def __init__(self, name, age, score): 初始化方法对象诞生时自动执行 self.name name # 属性姓名 self.age age # 属性年龄 self.score score # 属性分数 # 创建对象时传入的参数会自动交给 __init__ s1 Student(王小明, 18, 95) s2 Student(李小红, 19, 88) print(s1.name) # 王小明 print(s2.name) # 李小红self是什么self代表当前对象本身。调用s1.study()时self就是s1调用s2.study()时self就是s2。texts1 Student(王小明, 18) ↓ __init__(self, name, age) ↓ self s1 self.name 王小明 self.age 182.5 完整示例一个活的学生类pythonclass Student: 学生类 —— 包含属性、方法、内部逻辑 def __init__(self, name, age, score): self.name name self.age age self.score score self.is_active True # 默认属性 def study(self, hours): 学习方法传入学习时长 self.score hours * 0.5 print(f{self.name} 学习了 {hours} 小时分数提升到 {self.score:.1f}) def info(self): 打印学生信息 status 在读 if self.is_active else 已毕业 print(f姓名{self.name}年龄{self.age}成绩{self.score}状态{status}) # 使用 s1 Student(王小明, 18, 80) s2 Student(李小红, 19, 75) s1.study(5) # 王小明 学习了 5 小时分数提升到 82.5 s1.info() # 姓名王小明年龄18成绩82.5状态在读2.6 类的属性与实例的属性pythonclass School: # 类属性属于类本身所有实例共享 school_name Python 中学 total_students 0 def __init__(self, name): # 实例属性属于每个对象自己 self.name name School.total_students 1 print(School.school_name) # Python 中学类属性不依赖实例 s1 School(王小明) s2 School(李小红) print(s1.name) # 王小明实例属性每个对象不同 print(School.total_students) # 2类属性记录了总人数 今日核心知识速查异步模块概念写法作用异步函数async def func():定义异步函数等待操作await asyncio.sleep(1)非阻塞等待创建任务asyncio.create_task()包装为并发任务启动入口asyncio.run(main())运行异步程序面向对象模块概念写法作用定义类class Student:创建蓝图构造方法def __init__(self):初始化对象实例属性self.name name每个对象独有的数据类属性class_var 10所有实例共享实例方法def study(self):对象的行为实例化s Student()根据蓝图创建对象self方法第一个参数指向当前对象终章你站在了哪里今天你完成了两次跃迁。异步让你摆脱了“等待”的束缚程序不再是单线程苦力而是能同时盯着多个任务的总管。面向对象让你摆脱了“散装函数”的束缚代码不再是堆积木而是搭建系统。你开始设计蓝图、创造对象、让它们各司其职、互相协作。如果你能理解并运用今天的内容你就已经从一个“写脚本的人”变成了一个“设计系统的人”。这是程序员成长路上最重要的一道分水岭。你手里的不再是砖块是蓝图。你面前的不再是页面是架构。架构师你好。下期见。

相关新闻

standford cs144计算机网络Lab1-实现字节流重组器

standford cs144计算机网络Lab1-实现字节流重组器

书接上回,打开终端,在项目目录之中输入git checkout -b mylab1 origin/lab1-startercode可以获取纯净的lab1原始代码,建立属于你的lab1的分支就可以在操作台上面写代码了。通过git merge mylab0将上一个实验的实现内容合并到当前分支&#xf…

2026/8/1 5:54:06阅读更多 →
C语言基础:函数

C语言基础:函数

一段功能代码,被称为函数。为了避免代码的重复。 复用性。 开发不用从头开始(库函数)。模块化的思想 。 大问题,分解成小问题,逐个解决。设计函数 ,高内聚,低耦合。 功能越单一越好 ,对外部依赖越少越好。函…

2026/8/1 5:54:06阅读更多 →
[SECS/GEM研究] (五) SECS-II 是什么

[SECS/GEM研究] (五) SECS-II 是什么

SECS/GEM 协议栈开发笔记 第 5 篇 基于代码库:Libsecs(一个 C 实现的 SEMI 协议栈) 说在前面:由于工作的原因,本人早些年开发了一套SEMI标准的协议栈用于公司的SECS标准实现,为了防止经验遗忘,…

2026/8/1 5:54:06阅读更多 →
Chrome浏览器localhost:6667无法访问?解析ERR_UNSAFE_PORT与端口安全策略

Chrome浏览器localhost:6667无法访问?解析ERR_UNSAFE_PORT与端口安全策略

1. 问题现场:当localhost:6667在Chrome中“消失”如果你是一名开发者,或者经常需要在本机搭建测试环境,那么对http://localhost:8080或http://127.0.0.1:3000这样的地址一定不会陌生。localhost代表本机回环地址,是我们进行本地开…

2026/8/1 7:08:34阅读更多 →
Starrocks 4.0.2索引技术解析与性能优化实践

Starrocks 4.0.2索引技术解析与性能优化实践

1. Starrocks 4.0.2索引技术全景解析Starrocks作为新一代MPP分析型数据库,在4.0.2版本中对索引系统进行了重要升级。与传统数据库的B树索引不同,Starrocks采用了更适合OLAP场景的混合索引架构。在实际测试中,一个包含1亿条数据的表使用N-gram…

2026/8/1 7:08:34阅读更多 →
【AI物流降本增效实战指南】:20年行业专家亲授5大落地场景+3个避坑红线

【AI物流降本增效实战指南】:20年行业专家亲授5大落地场景+3个避坑红线

更多请点击: https://kaifayun.com 第一章:AI物流降本增效的底层逻辑与价值锚点 AI在物流领域的价值并非源于算法本身的复杂性,而在于其对“不确定性”的系统性消解能力。传统物流依赖经验决策与静态规则,在需求波动、运力错配、…

2026/8/1 7:08:34阅读更多 →
网站病毒清除怎么做?公司网站维护与网站木马解决全流程方案,公司网站被病毒入侵、被挂木马?专业网站病毒清除+公司网站维护+

网站病毒清除怎么做?公司网站维护与网站木马解决全流程方案,公司网站被病毒入侵、被挂木马?专业网站病毒清除+公司网站维护+

网站病毒清除怎么做?公司网站维护与网站木马解决全流程方案“公司网站突然跳转到博彩页面”、“网站文件被加密勒索”、“服务器里多了好多不认识的文件”——这些是网站病毒入侵后的典型症状。对于企业而言,网站不仅是品牌展示的窗口,更是业…

2026/8/1 7:08:34阅读更多 →
AI摆摊:在 muShanghai × 观猹 AI 练摊集市的一次高密度体验

AI摆摊:在 muShanghai × 观猹 AI 练摊集市的一次高密度体验

AI摆摊:在 muShanghai 观猹 AI 练摊集市的一次高密度体验 那天下午,我拖着行李箱站在上海静安寺附近一个不起眼的弄堂口,里面传来此起彼伏的键盘敲击声和机器人关节电机转动的声音。门口挂着一块手写牌:「muShanghai 观猹 AI 练…

2026/8/1 7:08:34阅读更多 →
Python脚本在cmd中无输出?系统化排查与解决方案

Python脚本在cmd中无输出?系统化排查与解决方案

1. 问题现象与初步排查如果你在Windows的cmd命令行里,输入python3 your_script.py后,光标闪了一下,然后什么也没发生——没有输出,没有报错,程序也没运行,cmd只是安静地回到了命令提示符状态——那你大概率…

2026/8/1 7:06:34阅读更多 →
覆盖国产 + 海外 + 开源模型,OpenClaw 2.7.9 Windows/Mac 双端部署详解

覆盖国产 + 海外 + 开源模型,OpenClaw 2.7.9 Windows/Mac 双端部署详解

🔹 工具基础介绍 OpenClaw 是开源生态中一款实用性较强的本地智能工具,凭借本地离线运行、可视化图形操作和任务自动化三大核心特性,赢得了众多用户的青睐。与普通在线对话AI工具不同,它属于能够直接操控本机软硬件的智能数字员工…

2026/7/31 20:44:05阅读更多 →
伺服阀焊完微漏毁整机?精密激光焊接三关锁住高压

伺服阀焊完微漏毁整机?精密激光焊接三关锁住高压

所谓液压伺服阀体的精密激光焊接,是用激光束对阀座壳体(通常为不锈钢或铝合金)进行密封焊接,使阀体在21-35MPa的高压液压油或压缩气体中长期运行而不发生介质泄漏。液压伺服阀是高端液压系统的"大脑"。从航空航天飞行控…

2026/7/31 17:41:43阅读更多 →
D2DX:三步实现《暗黑破坏神2》高清宽屏体验的终极指南

D2DX:三步实现《暗黑破坏神2》高清宽屏体验的终极指南

D2DX:三步实现《暗黑破坏神2》高清宽屏体验的终极指南 【免费下载链接】d2dx D2DX is a complete solution to make Diablo II run well on modern PCs, with high fps and better resolutions. 项目地址: https://gitcode.com/gh_mirrors/d2/d2dx 你是否还在…

2026/7/31 20:44:05阅读更多 →
无损视频剪辑终极指南:如何实现快速高效的多媒体处理

无损视频剪辑终极指南:如何实现快速高效的多媒体处理

无损视频剪辑终极指南:如何实现快速高效的多媒体处理 【免费下载链接】lossless-cut The swiss army knife of lossless video/audio editing 项目地址: https://gitcode.com/gh_mirrors/lo/lossless-cut 在数字媒体创作领域,视频编辑处理的质量损…

2026/8/1 0:00:10阅读更多 →
AI辅助本科论文写作:8大工具评测与高效使用指南

AI辅助本科论文写作:8大工具评测与高效使用指南

1. 本科生论文写作的AI辅助现状本科毕业论文是每个大学生必须跨越的一道坎。记得我当年写论文时,光是文献检索就花了整整两周时间,打印的参考文献堆满了半个书桌。如今AI技术的发展为学术写作带来了革命性变化,合理使用这些工具可以节省80%以…

2026/8/1 0:00:10阅读更多 →
如何快速配置大麦自动抢票系统:从零开始搭建Python抢票助手

如何快速配置大麦自动抢票系统:从零开始搭建Python抢票助手

如何快速配置大麦自动抢票系统:从零开始搭建Python抢票助手 【免费下载链接】ticket-purchase 大麦自动抢票,支持人员、城市、日期场次、价格选择 项目地址: https://gitcode.com/GitHub_Trending/ti/ticket-purchase 还在为抢不到热门演唱会门票…

2026/8/1 0:00:10阅读更多 →
无损视频剪辑终极指南:如何实现快速高效的多媒体处理

无损视频剪辑终极指南:如何实现快速高效的多媒体处理

无损视频剪辑终极指南:如何实现快速高效的多媒体处理 【免费下载链接】lossless-cut The swiss army knife of lossless video/audio editing 项目地址: https://gitcode.com/gh_mirrors/lo/lossless-cut 在数字媒体创作领域,视频编辑处理的质量损…

2026/8/1 0:00:10阅读更多 →
AI辅助本科论文写作:8大工具评测与高效使用指南

AI辅助本科论文写作:8大工具评测与高效使用指南

1. 本科生论文写作的AI辅助现状本科毕业论文是每个大学生必须跨越的一道坎。记得我当年写论文时,光是文献检索就花了整整两周时间,打印的参考文献堆满了半个书桌。如今AI技术的发展为学术写作带来了革命性变化,合理使用这些工具可以节省80%以…

2026/8/1 0:00:10阅读更多 →
如何快速配置大麦自动抢票系统:从零开始搭建Python抢票助手

如何快速配置大麦自动抢票系统:从零开始搭建Python抢票助手

如何快速配置大麦自动抢票系统:从零开始搭建Python抢票助手 【免费下载链接】ticket-purchase 大麦自动抢票,支持人员、城市、日期场次、价格选择 项目地址: https://gitcode.com/GitHub_Trending/ti/ticket-purchase 还在为抢不到热门演唱会门票…

2026/8/1 0:00:10阅读更多 →