
Python从入门到精通(超详细)
文章平均质量分 93
欢迎来到 《Python全栈开发专栏》,这是一个面向所有Python学习者、开发者和爱好者打造的系统性内容专栏,目标是帮助你 从零基础入门,逐步成长为精通Python多领域应用的开发者。
丰收连山
本人博客均为原创。如需搬运,请标明出处。祝国泰民安,码农庆丰收。
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
60. Zip_Tar文件压缩与解压
摘要:本文介绍了Python中处理zip和tar压缩文件的标准库操作。zipfile模块可用于创建、读取和解压ZIP文件,支持单个文件处理,注意路径和编码问题。tarfile模块用于归档文件打包解包,支持多种压缩格式,需注意归档与压缩的区别。两者都提供上下文管理确保资源释放,适合文件批量处理、备份等场景,示例代码涵盖了基本创建、解压和文件内容读取操作。原创 2025-06-15 12:08:59 · 587 阅读 · 0 评论 -
59. 文件内容的批量处理与分析
本文介绍了Python文件操作和文本处理的常用技术。文件操作部分讲解了os.listdir()目录遍历、glob模块模式匹配以及上下文管理器处理文件对象的方法。文本处理部分涵盖split()和strip()字符串方法、re模块正则表达式应用以及UTF-8/GBK编码问题处理。文章通过概念定义、使用场景、注意事项和代码示例,系统性地展示了Python处理文件和文本的核心技能,特别强调了资源管理、模式匹配和编码转换等实际开发中的关键问题。原创 2025-06-15 12:08:23 · 489 阅读 · 0 评论 -
58. 操作文件权限与访问控制
摘要 文件权限管理是操作系统的核心功能,主要控制用户对文件的访问权限。基本权限包括读(r)、写(w)和执行(x)三种类型,分别对应查看、修改和运行文件的权限。权限按用户分为所有者(Owner)、组用户(Group)和其他用户(Others)三类。数字表示法用八进制数字组合表示权限,如755表示所有者rwx,组和其他r-x。常用命令包括chmod修改权限、chown修改所有者、chgrp修改所属组。特殊权限如SUID允许以所有者权限执行文件。原创 2025-06-15 12:06:40 · 414 阅读 · 0 评论 -
57. 文件编码与乱码处理方法
文章摘要 本文介绍了文件编码的基础概念和Python中的处理方式。字符编码是将字符转换为二进制数据的过程,常见标准包括ASCII、Unicode和UTF-8。Python使用encode()和decode()方法进行编码转换,需注意编码一致性避免乱码。文件操作时应明确指定编码格式(如UTF-8),网络传输建议统一使用UTF-8。文章对比了文本模式(处理字符串)和二进制模式(处理字节)的区别,并提供了处理未知编码文件的策略,如使用chardet检测编码并尝试多种解码方案。最后强调了编码不一致可能导致的问题及解原创 2025-06-15 12:06:06 · 305 阅读 · 0 评论 -
56. 文件路径处理技巧(os.path)
Python的os.path模块提供了多种路径操作方法,包括路径拼接、分解、检测和规范化处理。os.path.join()智能拼接跨平台路径,注意绝对路径会忽略之前参数;os.path.split()将路径分解为目录和文件名;os.path.splitext()分离文件名与扩展名。检测类方法如os.path.exists()检查路径存在性,os.path.isfile()和os.path.isdir()区分文件与目录。os.path.abspath()可将相对路径转为绝对路径。这些方法需注意路径格式、权限问原创 2025-06-15 12:05:33 · 432 阅读 · 0 评论 -
55. 临时文件与缓存管理
Python的tempfile模块提供了创建临时文件和目录的功能,支持自动清理和安全删除。主要方法包括NamedTemporaryFile()、mkstemp()和TemporaryFile(),适用于处理中间数据、测试等场景。临时目录管理通过TemporaryDirectory()实现,确保程序退出后自动删除。安全删除临时文件可使用多次数据覆盖方式。注意事项包括:权限管理、路径差异、文件关闭问题以及跨平台兼容性处理。模块还支持自定义临时文件位置和前缀/后缀,并提供手动与自动清理两种模式。原创 2025-06-15 12:05:00 · 673 阅读 · 0 评论 -
54. 操作系统命令调用(os.system _ subprocess)
Python执行系统命令主要有两种方式:os.system()和subprocess模块。os.system()简单易用但功能有限,适合执行简单命令,需注意安全性和跨平台问题。subprocess.run()功能更强大,可捕获输出和返回状态,而Popen类提供高级控制,适用于交互式、后台进程等复杂场景。使用时需注意命令注入风险、编码问题和死锁规避。subprocess是更现代、安全的方案,推荐优先使用。原创 2025-06-15 12:04:25 · 577 阅读 · 0 评论 -
53. pathlib模块简介与实践
Python的pathlib模块为文件系统路径操作提供了面向对象的解决方案,相比传统os.path方法更加直观和安全。该模块的核心Path类将路径抽象为对象,支持跨平台路径拼接、解析和属性获取,自动处理系统差异。通过链式调用方法,开发者可轻松实现文件/目录的创建、删除和遍历等操作,同时内置常用功能减少了os/shutil模块的依赖。典型应用包括路径拼接(使用/运算符)、文件属性检查(如.exists())以及目录创建(.mkdir())。需注意部分操作会实际访问文件系统,且旧代码可能需要兼容处理。原创 2025-06-14 19:38:31 · 390 阅读 · 0 评论 -
52. shutil实现文件_文件夹的复制与删除
模块功能定位是指通过分析模块在系统中的角色和职责,明确其核心功能和边界范围。在Python中,模块通常是一个.py文件,包含相关的函数、类和变量,用于实现特定的功能集合。os模块是Python标准库中用于操作系统相关功能的传统模块,而pathlib是Python 3.4引入的面向对象的文件系统路径操作模块。两者在文件系统操作方面存在功能重叠,但各有侧重。copy()是 Python 中shutil模块提供的一个函数,用于将源文件复制到目标位置。它执行的是文件内容的逐字节复制,适用于大多数文件复制场景。原创 2025-06-14 19:37:58 · 465 阅读 · 0 评论 -
51. os模块基本使用
Python中的os模块提供了丰富的操作系统交互功能,包括文件和目录操作、工作目录管理、路径处理和环境变量访问等。通过os模块可以创建/删除目录、遍历目录内容、动态拼接跨平台路径、获取和修改工作目录,以及访问系统环境变量。关键特性包括:使用os.path.join()处理路径兼容性、os.walk()递归遍历目录、os.getcwd()/chdir()管理工作目录、os.environ访问环境变量。操作时需注意路径分隔符差异、权限检查和跨平台兼容性,推荐使用pathlib.Path作为更现代的替代方案。原创 2025-06-14 19:37:19 · 798 阅读 · 0 评论 -
50. JSON文件的读写与序列化
JSON是一种轻量级数据交换格式,常用于前后端数据传输。Python通过json模块处理JSON数据,主要方法包括: json.load()读取JSON文件并转为Python对象 json.dump()将Python对象写入JSON文件 需要注意编码问题,中文需设置ensure_ascii=False JSON与Python数据类型有对应关系,如JSON对象对应dict,数组对应list 文件操作时建议使用with语句并处理异常情况 写入时可通过indent参数格式化输出,提高可读性。原创 2025-06-14 19:36:47 · 588 阅读 · 0 评论 -
49. 文本文件与二进制文件处理
本文介绍了Python文件操作的核心概念与技术要点。主要内容包括:1)文件打开模式(文本/二进制模式及编码参数),其中文本模式支持读写和追加,二进制模式适用于非文本文件;2)文本文件操作方法(read/readline/readlines和write/writelines)的使用场景与注意事项;3)with语句的自动资源管理功能;4)不同平台的行结束符(\n和\r\n)处理机制。文章通过示例代码展示了各种文件操作的具体实现,并强调了常见误区,如内存管理、编码指定和跨平台兼容性问题。原创 2025-06-14 19:36:14 · 893 阅读 · 0 评论 -
48. 使用with语句操作文件
Python文件操作与资源管理摘要 Python的with语句提供了一种简洁高效的资源管理方式,尤其适合文件操作场景。其核心优势在于自动资源释放机制,通过上下文管理协议(__enter__和__exit__方法)确保文件无论正常执行还是异常中断都能被正确关闭。 文件操作主要涉及三个关键方法: read()用于读取内容,可指定字符数分块处理大文件 write()写入内容,需注意模式选择(覆盖/追加) seek()/tell()控制文件指针,实现灵活读写 异常处理是文件操作的重要环。原创 2025-06-14 19:35:35 · 392 阅读 · 0 评论 -
47. 文件的追加与修改
本文介绍了Python文件操作的三种常见模式:追加、修改和注意事项。在追加操作中,'a'和'a+'模式可用于末尾添加内容,需注意指针位置和换行符处理。修改操作使用'r+'模式进行读写,配合seek()定位指针。注意事项包括文件编码处理(推荐UTF-8)和异常处理(文件不存在或权限问题)。文中提供了代码示例,展示了如何安全地进行文件追加、修改及跨平台换行符处理,帮助开发者避免常见错误。原创 2025-06-14 19:35:05 · 572 阅读 · 0 评论 -
46. 文件读写基础(open、read、write)
Python文件操作指南摘要: Python通过open()函数提供文件操作功能,支持多种模式: 基本操作:使用with语句自动管理文件开关,避免资源泄露 读取方式:read()读取全部内容,readline()和readlines()逐行读取 写入操作:write()写入字符串,需手动换行,注意模式选择(w覆盖/a追加) 指针控制:seek()定位文件指针,实现随机访问 注意事项: 大文件避免read()/readlines()以防内存溢出 注意文本/二进制模式区别 写入模式会清空文件内容。原创 2025-06-14 19:34:34 · 338 阅读 · 0 评论 -
45. 元类与类的动态创建(进阶)
元类是Python中创建类的类,主要用于控制类的创建过程。通过继承type实现自定义元类,核心方法包括__new__(创建类实例)、__init__(初始化类)和__prepare__(定制命名空间)。常见应用场景包括动态修改类属性、实现单例模式、开发框架(如Django ORM)等。使用时需注意Python 2/3语法差异,避免过度使用导致代码复杂化。合理运用元类可实现强大的类行为控制,但多数情况下简单的类装饰器已能满足需求。原创 2025-06-14 19:33:55 · 567 阅读 · 0 评论 -
44. Python中的组合与委托
组合和委托是面向对象编程中的两种重要设计模式。组合通过类属性实现"has-a"关系,强调对象间的拥有关系,如Car类包含Engine实例。它具有强所有权、不可共享但灵活性高的特点,适用于构建复杂对象结构。委托则是一种引用类型,允许将方法作为参数传递或存储在变量中,常用于事件处理和回调机制。 两种模式的主要区别在于:组合是结构关系,委托是行为关系。组合更适合表达整体与部分的关系,而委托更适用于功能转发和动态行为变更。原创 2025-06-14 19:33:25 · 450 阅读 · 0 评论 -
43. 抽象类与接口设计(abc模块)
摘要:本文介绍了Python中抽象基类(ABC)的概念与实现。抽象基类通过abc模块提供,包含ABCMeta元类和abstractmethod装饰器,用于定义不能被实例化的接口规范,强制子类实现特定方法。文章详细讲解了抽象基类的创建方式(继承ABC类或使用ABCMeta)、抽象方法的声明(@abstractmethod装饰器)以及抽象属性的实现。关键点包括:抽象类不能实例化、子类必须实现所有抽象成员、抽象方法/属性的定义规范等,并提供了形状类等代码示例来说明正确用法和常见错误。原创 2025-06-14 19:32:48 · 511 阅读 · 0 评论 -
42. isinstance与issubclass用法
本文介绍了Python中的isinstance()和issubclass()函数,以及lambda表达式和类型检查的应用。主要内容包括:lambda函数的基本语法与参数使用;isinstance()在类型检查中的应用场景及与type()的区别;issubclass()在继承关系验证和多继承中的行为;以及抽象基类(ABC)的接口规范作用。文章通过示例代码展示了这些功能的实际应用,并指出了常见误区和使用注意事项,强调在动态类型检查、继承验证和接口设计中合理选择这些工具的重要性。原创 2025-06-11 09:32:39 · 377 阅读 · 0 评论 -
41. 对象的比较与排序
本文介绍了Python中比较运算符和排序的基础知识。比较运算符包括==、!=、<、>等,用于值比较,而is用于对象身份比较。自定义类可通过实现特殊方法(如__eq__、__lt__)来定义比较行为。排序方面,sorted()函数返回新排序列表,list.sort()方法原地排序列表,两者都支持key和reverse参数。排序稳定性指相同键值元素保持原始相对顺序的特性。注意比较时的类型差异和浮点数精度问题,以及合理选择排序方法。原创 2025-06-11 09:32:05 · 365 阅读 · 0 评论 -
39. 类属性与类方法(@classmethod)
本文介绍了Python中类属性与类方法的相关概念。类属性是定义在类内部但在方法外部的变量,所有实例共享同一属性;实例属性则属于特定实例。文中指出常见误区包括误修改类属性创建实例属性、可变类属性共享问题等。 对于类方法,重点讲解了@classmethod装饰器的使用,其第一个参数cls代表类本身。类方法适用于工厂方法创建实例、访问类属性等场景,可通过类或实例调用。示例代码展示了类属性共享特性、类方法定义与调用方式,以及如何利用类方法实现替代构造函数等实用技巧。原创 2025-06-11 09:30:17 · 326 阅读 · 0 评论 -
38. 魔术方法(__str__、__repr__等)
魔术方法(Magic Methods)是 Python 中一类特殊的方法,其名称以双下划线(__)开头和结尾。它们用于定义类的特定行为,例如对象的初始化、比较、运算等。Python 会在特定场景下自动调用这些方法。魔术方法(Magic Methods)是Python中特殊的方法,它们以双下划线开头和结尾(如__init__这些方法在特定情况下会被Python自动调用,用于实现对象的特定行为。比较运算方法是Python中用于比较两个值的关系的运算符,返回布尔值(True或False==:等于!:不等于。原创 2025-06-11 09:29:40 · 392 阅读 · 0 评论 -
37. 多态与鸭子类型
多态是面向对象编程的核心特性,指同一方法调用在不同对象上产生不同行为。在Python中主要通过继承方法重写和鸭子类型实现多态。继承方法重写要求子类继承父类并重写方法,而鸭子类型则更灵活,只要对象具有所需方法即可。Python作为动态语言,多态实现更注重对象行为而非类型,提高了代码灵活性但也增加了运行时错误风险。相比之下,静态语言如Java需要显式接口定义才能实现多态,类型更安全但灵活性较低。两种方式各有优劣,开发者应根据项目需求选择合适方案。原创 2025-06-11 09:29:09 · 397 阅读 · 0 评论 -
36. 继承与super关键字
面向对象编程中的继承机制允许子类复用父类代码并扩展功能。继承的核心概念包括父类与子类的关系、方法重写和super关键字的使用。方法重写让子类能修改父类方法的行为,需注意保持方法签名一致且访问权限不更严格。super()函数则用于调用父类方法,常见于子类初始化时。使用继承时需避免过度继承导致代码复杂,优先考虑组合而非继承。原创 2025-06-11 09:28:36 · 214 阅读 · 0 评论 -
35. 私有属性与封装
摘要:Python中实现封装主要通过私有属性和装饰器方法。私有属性使用双下划线前缀(__)命名,通过名称修饰限制外部访问,但实际仍可通过特殊名称访问。单下划线前缀(_)是约定上的私有属性。@property装饰器可将方法转为属性,配合setter实现属性控制。getter/setter方法用于管理属性访问,确保数据安全。关键点:1) 双下划线实现名称修饰;2) 单下划线是约定私有;3) @property提供属性控制接口;4) getter/setter管理访问权限。这些方法共同实现Python的封装特性。原创 2025-06-11 09:27:58 · 270 阅读 · 0 评论 -
34. 方法的定义与调用
主要内容包括: 基本语法:Python使用缩进表示代码块,支持动态类型变量、多种注释方式及代码换行规则。 参数类型:涵盖位置参数、默认参数、关键字参数、可变位置参数(*args)和可变关键字参数(**kwargs)的使用方法及注意事项。 返回值:详细说明return语句的使用场景和常见误区,包括如何返回多个值及提前返回的情况。 方法调用:介绍直接调用方式、参数传递规则(对象引用传递)以及方法链式调用的实现方式。原创 2025-06-11 09:27:27 · 376 阅读 · 0 评论 -
33. 实例变量与类变量
本文介绍了Python中实例变量和类变量的基本概念、特点及使用方法。实例变量属于对象实例,存储对象特有状态,通过self.var访问,生命周期与对象绑定;类变量属于类本身,所有实例共享,通过ClassName.var访问。两者在内存存储上有区别,实例变量随对象独立存储,类变量只存一份。使用时需注意:实例变量通常在__init__初始化,类变量通过类名修改而非实例修改(否则会创建同名实例变量)。典型应用场景包括存储对象状态(实例变量)和共享配置(类变量)。原创 2025-06-11 09:26:47 · 255 阅读 · 0 评论 -
32. __init__方法与构造函数
Python中的__init__方法是类的特殊构造方法,用于对象初始化。它会在实例创建时自动调用,主要用于设置对象属性和执行初始化操作。__init__必须将self作为首个参数,且不应返回值。在使用时需要注意:子类继承时需通过super()调用父类初始化,多继承时要遵循方法解析顺序(MRO)。与普通构造函数不同,Python的__init__并非真正构造对象,而是初始化已创建的对象。正确使用__init__可以确保对象属性正确初始化,是面向对象编程的基础。原创 2025-06-11 09:26:03 · 406 阅读 · 0 评论 -
31. 类和对象的基本概念
Python类和对象摘要(150字): 类(Class)是创建对象的蓝图,包含属性(数据)和方法(行为)。对象(Object)是类的具体实例,如Dog类创建my_dog对象。通过__init__构造函数初始化对象属性。面向对象的三大特性包括:封装(隐藏内部细节,用@property控制访问)、继承(复用父类特性)和多态(不同类对同一方法有不同实现)。使用时需注意:类名用大驼峰命名、方法首参为self、区分类属性与实例属性。示例:Person类定义name/age属性及greet()方法,通过实例化对象调用。原创 2025-06-11 09:25:18 · 292 阅读 · 0 评论 -
30. Python代码调试与注释技巧
本文介绍了Python调试与代码规范的核心内容。调试工具方面,详细讲解了pdb调试器、breakpoint()函数和IDE集成调试功能的使用方法及注意事项。调试技巧部分包含打印调试法、异常捕获与处理和单元测试调试等实用技术,强调合理使用断点、日志和测试验证。代码规范部分重点说明文档字符串的标准格式和编写要求,建议采用Numpy或Google风格,确保文档的完整性和一致性。文中配有示例代码展示各类调试场景的实际应用,帮助开发者快速定位问题和提高代码质量。原创 2025-06-11 09:24:27 · 587 阅读 · 0 评论 -
29. 编码规范与PEP8介绍
PEP8(Python Enhancement Proposal 8)是 Python 官方发布的代码风格指南,旨在提供一致的代码编写规范。它涵盖了变量命名、缩进、注释、行长度等多个方面的规则,帮助开发者编写清晰、易读的代码。PEP 8是Python Enhancement Proposal第8号的简称,它是Python官方推荐的代码风格指南。这份文档详细规定了Python代码的编写规范,包括命名约定、代码布局、注释规范等。原创 2025-06-11 09:23:47 · 373 阅读 · 0 评论 -
28. Python标准库概览
Python 标准库(Standard Library)是 Python 语言自带的一组模块和包,提供了丰富的功能,涵盖了文件操作、网络通信、数据处理、系统交互等常见任务。这些模块和包无需额外安装,可以直接导入使用。内置模块是Python解释器自带的模块,无需额外安装即可使用。包是一种特殊的模块,包含多个模块或子包,通常以目录形式存在,并包含文件。Python标准库版本兼容性指的是在不同Python版本中,标准库模块和功能的可用性和行为一致性。原创 2025-06-10 12:37:14 · 790 阅读 · 0 评论 -
27. Python模块与import导入机制
在Python中,模块是一个包含Python代码的文件(以.py为扩展名)。模块可以包含函数、类和变量,也可以包含可执行的代码。模块的主要目的是将相关的代码组织在一起,以便于重用和维护。模块的文件结构指的是Python模块在文件系统中的组织方式。一个模块通常对应一个.py文件,而包(Package)则是一个包含多个模块的目录,其中必须包含一个文件(Python 3.3+中可省略,但建议保留)。import是 Python 中用于导入模块或库的关键字,允许在当前代码中使用其他模块中定义的函数、类和变量。原创 2025-06-10 12:36:29 · 861 阅读 · 0 评论 -
26. 列表推导式与生成器表达式
本文介绍了Python中的列表推导式、生成器表达式以及is与==的区别。列表推导式提供了一种简洁的创建列表的方式,基本语法为[expression for item in iterable],支持条件过滤和多重循环。生成器表达式使用圆括号,按需生成元素,适合处理大数据集。is比较对象内存地址,==比较值,需要注意小整数缓存等特殊情况。列表推导式和生成器表达式各有适用场景,前者立即生成结果,后者节省内存但只能迭代一次。原创 2025-06-10 12:35:58 · 907 阅读 · 0 评论 -
25. 匿名函数 lambda
匿名函数(Anonymous Function)是指没有名称的函数,也称为 lambda 函数。它通常用于简化代码,尤其是在需要临时定义简单函数时。匿名函数的特点是简洁、一次性使用,不需要通过def关键字显式定义。def函数:使用def关键字定义的标准函数,可以有名称、多个语句和复杂的逻辑结构。lambda函数:匿名函数,使用lambda关键字定义,通常用于简化单行表达式,没有函数名。pass是 Python 中的一个空操作语句,当它被执行时,不会产生任何效果。原创 2025-06-10 12:35:25 · 716 阅读 · 0 评论 -
24. 作用域与变量的生命周期
本文深入解析Python中的作用域机制,主要包括局部、嵌套、全局和内置四种作用域类型。详细阐述了变量的生命周期管理,包括全局变量(从程序开始到结束)和局部变量(仅在函数执行期间存在),并特别分析了闭包对变量生命周期的延长效应。文章通过示例代码演示了作用域链、变量访问规则及常见误区,如变量遮蔽、循环引用和闭包陷阱。最后,对比了不同作用域的使用场景及注意事项,强调了合理使用全局变量和正确管理变量生命周期的重要性。原创 2025-06-10 12:34:49 · 777 阅读 · 0 评论 -
23. 可变参数与_args___kwargs
Python可变参数(*args和**kwargs)允许函数接收任意数量的位置和关键字参数,提高代码灵活性。*args将位置参数打包为元组,适用于不确定数量的输入场景;*kwargs将关键字参数打包为字典,常用于参数透传。两者必须分别位于普通参数之后和参数列表末尾。参数解包(和)可将可迭代对象或字典展开为独立参数。使用时需注意参数顺序、命名冲突和滥用问题,合理使用可变参数能简化调用方式并保持代码兼容性。原创 2025-06-10 12:34:12 · 682 阅读 · 0 评论 -
22. 函数的默认参数与关键字参数
在 Python 中,定义方式指的是如何声明变量、函数、类等元素。Python 采用简洁的语法,无需显式指定类型,而是通过赋值自动推断。变量通过直接赋值定义,无需关键字(如var或letx = 10 # 整数name = "Alice" # 字符串is_valid = True # 布尔值使用defname }!name }!使用class默认值设置规则是指在Python函数定义中,为参数指定默认值的规范。当调用函数时,如果没有为这些参数提供值,则会使用默认值。原创 2025-06-10 12:33:37 · 558 阅读 · 0 评论 -
21. 自定义函数与参数传递
Python函数定义基础与参数类型详解 函数定义需使用def关键字,遵循snake_case命名规则,避免与内置函数冲突。函数体包含执行逻辑,return可返回单个值或多个值(元组形式)。文档字符串(docstring)用三引号编写,说明功能、参数及返回值。参数类型包括:位置参数(按顺序传递)、默认参数(定义默认值)、可变参数(*args接收元组)和关键字参数(**kwargs接收字典)。注意默认参数避免用可变对象,*args和**kwargs需放在参数列表末尾。合理使用参数类型可提高函数灵活性和可读性。原创 2025-06-10 12:33:07 · 599 阅读 · 0 评论 -
20. Python中异常处理 try_except_finally
Python异常处理机制总结: 基础语法结构: try-except基本结构用于捕获和处理异常,防止程序崩溃,语法为尝试执行可能出错代码并定义异常处理逻辑。 多except块可针对不同异常类型提供差异处理,需注意捕获顺序应从具体到宽泛。 finally块确保关键代码(如资源释放)必定执行,即使在return或异常发生后。 异常类型处理: 捕获特定异常更精确,避免过度捕获隐藏问题。 多个异常可通过元组同时捕获,或分别处理不同异常类型。原创 2025-06-10 12:32:23 · 829 阅读 · 0 评论