python
文章平均质量分 70
梦想不只是梦与想
如果你也对鸿蒙、安卓开发感兴趣,可以一起进步、讨论,微信公众号【程语新视界】
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
幂等性(Idempotency)
幂等性指多次执行相同操作对系统状态无额外影响,是分布式系统保安全的关键。生活中的按电梯、查余额具幂等性,而取钱、点外卖则非幂等。在互联网场景中,网络超时、消息重试、服务重调易引发重复请求,若无幂等设计将导致重复扣款、多发订单等错误。可通过唯一ID、数据库唯一索引、状态机控制或Token机制实现幂等,确保同一请求仅生效一次,保障数据一致性与系统稳定。原创 2026-11-06 07:00:00 · 586 阅读 · 0 评论 -
Python 中的 enumerate()方法
enumerate()是Python内置函数,用于遍历可迭代对象时同时获取索引和值。语法为enumerate(iterable, start=0),支持自定义起始索引(如从1开始)。相比传统range(len())写法,它更简洁优雅。返回的是生成器,可转为列表或字典,常用于快速建立索引映射。底层通过迭代器逐次生成(index, value)元组,适合需要索引与元素同步处理的场景,推荐优先使用。原创 2026-11-04 07:00:00 · 195 阅读 · 0 评论 -
Python 中的 json 模块
json模块是Python标准库中用于处理JSON数据的核心工具,实现Python对象与JSON字符串间的序列化(dumps/dump)和反序列化(loads/load)。支持字典、列表、字符串、数字等基本类型映射,可自定义格式(如缩进、分隔符)、处理非ASCII字符及不可序列化对象。dumps/loads操作字符串,dump/load操作文件,广泛应用于API交互、配置存储等场景。原创 2026-10-29 07:00:00 · 224 阅读 · 0 评论 -
Python 中字符串常用方法
本文系统介绍了Python字符串常用操作方法,涵盖大小写转换(如upper、lower)、查找与判断(如find、startswith)、去除空白(strip)、分割连接(split、join)、格式化(f-string、format)、类型判断(isalpha、isdigit)及编码转换等,结合实例说明其用法与差异,帮助快速掌握字符串处理核心技能。原创 2026-10-26 07:30:00 · 295 阅读 · 0 评论 -
Python 中的 pathlib 模块
pathlib是 Python 3.4 引入的的路径处理模块。它把文件路径封装成了Path对象,可以用的方式操作文件和目录,逐渐替代传统的os.path。原创 2026-10-23 07:30:00 · 565 阅读 · 0 评论 -
Python 中的 os.path 模块
os.path是Python标准库中处理文件路径的核心模块,支持跨平台路径操作。它提供路径拼接(join)、拆分(split、dirname、basename)、判断(exists、isfile、isdir)、查询(getsize、getmtime)及规范化(abspath、normpath)等功能,自动适配不同系统的路径分隔符。还支持路径展开(expanduser、expandvars)与比较(samefile、commonpath),确保代码在Windows、Linux和macOS间兼容可靠。原创 2026-10-22 07:30:00 · 316 阅读 · 0 评论 -
Python 装饰器:@dataclass(二)
field()可精细控制数据类字段行为,支持默认值、初始化、比较、哈希、元数据等参数。__post_init__用于初始化后处理,frozen=True实现不可变性,order=True支持排序,继承时需注意字段顺序与默认值规则。相比Pydantic和attrs,@dataclass轻量高效,适合内部数据结构,而后者更适合复杂校验与序列化场景。原创 2026-10-21 07:30:00 · 370 阅读 · 0 评论 -
Python 装饰器:@dataclass(一)
@dataclass是Python 3.7引入的装饰器,可自动生成类的__init__、__repr__、__eq__等样板代码,简化数据类定义。支持类型注解与默认值,字段需有类型,可变默认值须用field(default_factory=...)避免共享问题。可通过参数控制是否生成方法,如frozen=True实现不可变实例,order=True支持排序比较,大幅提升开发效率与代码可读性。原创 2026-10-20 07:30:00 · 449 阅读 · 0 评论 -
Python 中subprocess 模块:执行外部命令
subprocess是 Python 用来的标准库,可以执行外部命令、调用其他程序,并获取它们的输入输出。原创 2026-10-19 06:45:00 · 325 阅读 · 0 评论 -
MinerU :面向 Agent 的文档解析工具(一)
即可开箱即用:小模型用 ONNX CPU 推理,VLM 用 llama.cpp Vulkan 模式,在绝大多数设备上兼容性良好。,核心作用是把各种格式的文档(PDF、图片、Office 文档等)解析成。一个命令行文档阅读器,供 Agent 调用。MinerU 提供四档解析质量,控制。不会作为默认的最终阅读质量。不会自动选择,需要显式指定。“聊天式文档问答”应用。建议在虚拟环境中安装。原创 2026-10-16 07:30:00 · 252 阅读 · 0 评论 -
python pathlib 中: / 运算符重载
在pathlib中,运算符被重载了,返回的是一个新的Path对象,而不是字符串。原创 2026-10-15 07:30:00 · 254 阅读 · 0 评论 -
Python 中的魔法函数
魔法函数(也叫 dunder methods,即oublescore methods)是 Python 中以__xxx__形式命名的方法。它们,而是在特定操作发生时由 Python 自动触发,让自定义对象能像内置类型一样工作。原创 2026-10-14 07:30:00 · 545 阅读 · 0 评论 -
SQLAlchemy:异步、连接池 (四)
传统 SQLAlchemy 是同步的,在异步框架(如 FastAPI)中会阻塞事件循环。异步 SQLAlchemy 可以在。连接池管理数据库连接,避免每次请求都新建连接。原创 2026-10-13 06:45:00 · 197 阅读 · 0 评论 -
SQLAlchemy:查询与操作 (三)
前两篇介绍了模型定义,这一篇介绍一下,这应该是日常开发中用得最多的部分。原创 2026-10-11 06:45:00 · 280 阅读 · 0 评论 -
SQLAlchemy:Model 的定义 (二)
关系映射是 ORM 最强大的功能,可以用 Python 对象访问关联数据。:大文件不应该存数据库,应该存对象存储,数据库只存 URL。一个表自己关联自己,比如员工和上级。会在每次更新记录时自动刷新时间。最常见的场景:一个用户有多个订单。适合存储结构不固定的数据。约束用于保证数据的完整性。,否则会有精度丢失。原创 2026-10-09 06:45:00 · 84 阅读 · 0 评论 -
SQLAlchemy三件套:Engine、Session、Model (一)
创建基类# 定义模型(映射到 users 表)关键点指定表名Column定义字段标记主键禁止为空唯一约束。原创 2026-10-08 06:45:00 · 421 阅读 · 0 评论 -
环境管理:Conda 与 venv
venv是 Python 内置的虚拟环境工具,conda是独立的包管理和环境管理系统。两者都能创建隔离环境,但定位和能力差别很大。原创 2026-09-19 11:00:00 · 602 阅读 · 0 评论 -
Python环境管理系统:uv
uv是由 Astral 公司(Ruff 的开发者)用 Rust 编写的高性能 Python 包管理器。它的目标是,同时速度极快。原创 2026-09-18 11:00:00 · 283 阅读 · 0 评论 -
环境管理系统:Conda(一)
概念说明环境(Environment)一个独立的“小房间”,包含特定版本的 Python 和所有依赖包包(Package)需要安装的软件库,如 numpy、pandas、tensorflow通道(Channel)包的来源。默认是defaults,社区维护的是base环境Conda 安装后默认进入的基础环境,不建议在里面装项目依赖。原创 2026-09-17 11:00:00 · 353 阅读 · 0 评论 -
Web 服务器网关协议:ASGI 和 WSGI
WSGI 和 ASGI 它们定义了。原创 2026-09-04 18:00:00 · 721 阅读 · 0 评论 -
Python Web 框架:FastAPI
使用装饰器@app.get()@app.put()等来定义对应 HTTP 方法的路由。# 创建用户的逻辑。原创 2026-09-03 18:00:00 · 625 阅读 · 0 评论 -
Python 中的同步\异步
本文对比了并发与并行、同步与异步的核心概念及Python实现方式。并发是逻辑上的同时执行(如多线程交替运行),适用于I/O密集型任务,推荐使用asyncio协程;并行是物理上的同时执行(如多进程),适用于CPU密集型任务,需用multiprocessing绕过GIL限制。同步操作会阻塞等待,而异步操作通过非阻塞方式提高资源利用率。文章通过代码示例展示了不同场景下的实现方案,并比较了它们的核心区别(执行方式、等待机制等)及适用场景,为开发者选择合适编程模型提供了实践指导。原创 2026-09-02 18:00:00 · 392 阅读 · 0 评论 -
文本编辑器:Vim
Vim是一款高效键盘操作的文本编辑器,具有多种模式(普通、插入、可视、命令行)实现不同功能。核心操作包括光标移动(h/j/k/l)、编辑命令(dd/yy/p)、查找替换(/pattern、:s/old/new)和分屏管理(:sp/:vsp)。常用配置通过.vimrc文件自定义,如显示行号、智能缩进等。Vim以陡峭学习曲线著称,但掌握后能显著提升文本处理效率,支持快捷键组合(如5dd删除5行)和模式切换(Esc/i)实现快速编辑。原创 2026-08-09 18:00:00 · 268 阅读 · 0 评论 -
Python 中的 EOFError 异常
摘要: EOFError是Python的内置异常,表示输入操作意外到达文件或流的末尾。主要触发场景包括:1)交互模式下input()未读取到数据(如非交互环境或管道输入);2)文件读取时超出末尾。与StopIteration(迭代器耗尽)不同,EOFError针对输入流中断。异常处理可通过try-except捕获,例如为input()设置默认值。注意区分KeyboardInterrupt(用户主动中断)和EOFError(无数据可读)。在非交互环境(如后台脚本)中直接调用input()易触发此错误,需提前防原创 2026-08-08 18:00:00 · 516 阅读 · 0 评论 -
Python 中的 KeyboardInterrupt 异常
摘要:KeyboardInterrupt是Python中处理用户中断操作(如Ctrl+C)的异常,继承自BaseException而非Exception,以避免被常规异常处理捕获。通常用于优雅退出程序,执行清理工作。示例如捕获中断并打印退出信息,或区分处理中断与其他异常。若不捕获,程序会直接终止而不执行清理。原创 2026-08-07 18:00:00 · 303 阅读 · 0 评论 -
Python 中的正则
本文介绍了Python中正则表达式(re模块)的基础知识和常见用法。主要内容包括:1.常用功能:匹配、搜索、替换等操作;2.核心函数:match()、search()、findall()等;3.基础语法:元字符(.^$*+?等)、字符类(\d\w\s等)的使用;4.实用技巧:分组捕获、贪婪/非贪婪匹配、预编译模式;5.典型应用:匹配数字、邮箱、手机号等常见场景。文章通过代码示例展示了正则表达式在文本处理中的强大功能,适合需要处理字符串模式的Python开发者参考。原创 2026-08-06 18:00:00 · 254 阅读 · 0 评论 -
Python 中的进程创建
本文介绍了Python多进程编程的核心内容,包括进程与线程的区别、进程创建方法、进程池使用、进程间通信方式(队列、管道、共享内存、管理器)、进程同步机制以及性能对比。文章通过代码示例展示了进程的独立内存空间特性,以及如何利用multiprocessing模块实现并发执行,特别强调进程适合CPU密集型任务而线程适合I/O密集型任务的特点。关键对比显示:多进程能真正利用多核并行计算,但创建和切换开销较大;多线程则因GIL限制适合处理I/O等待任务,切换成本更低。原创 2026-08-05 18:00:00 · 252 阅读 · 0 评论 -
Python 生成器方法 send() 的执行过程
摘要: Python生成器的send()方法具有双重功能:恢复执行并向生成器发送值,该值会成为当前yield表达式的返回值。与next()不同,send(value)可传递值(首次调用需用next()或send(None)启动)。执行流程为:send()传入的值赋给暂停的yield,生成器继续执行至下一个yield。例如,累计生成器中通过send()多次传值实现状态保持。本质上,next(g)等价于g.send(None)。注意首次调用若直接send(非None值)会触发异常,因初始无yield接收值。这一原创 2026-08-04 18:00:00 · 481 阅读 · 0 评论 -
Python 中的 Iterable 和 Iterator
本文系统讲解了Python中Iterable(可迭代对象)和Iterator(迭代器)的区别与联系。Iterable是实现了__iter__()方法的容器对象(如列表、字符串等),可以被iter()转换为Iterator。Iterator则同时实现__iter__()和__next__()方法,具有状态记忆功能,遍历后不能重复使用。文章通过代码示例展示了二者的行为差异,并演示了如何自定义迭代器和可迭代对象。同时解释了for循环的内部原理(自动调用iter()和next()),介绍了生成器作为创建迭代器的简便原创 2026-08-03 18:00:00 · 428 阅读 · 0 评论 -
Python 项目打包
本文详细介绍了Python项目打包的核心流程和最佳实践。主要内容包括:1)项目结构规范,推荐使用src布局;2)配置文件选择,对比了传统的setup.py和现代的pyproject.toml;3)打包发布全流程,涵盖本地安装、构建分发包和上传PyPI;4)依赖管理和版本控制规范;5)创建命令行工具的方法;6)常用工具链推荐(pip/uv/build/twine等)。重点推荐使用pyproject.toml进行项目配置,并提供了完整的配置示例和版本号规范说明,适合开发者快速掌握Python项目的标准化打包发布原创 2026-08-02 18:00:00 · 234 阅读 · 0 评论 -
Python 中的异常处理
本文系统介绍了Python异常处理机制,包括基础语法和高级应用。主要内容涵盖:1. 基本try-except结构及其完整形式(含else/finally);2. 多异常捕获的三种方式;3. raise主动抛出异常及异常链;4. 自定义异常类的实现(含继承结构和附加信息);5. with语句的上下文管理原理及自定义实现;6. 常见内置异常类型。文章通过丰富示例展示了异常处理的典型应用场景,强调了对特定异常精确捕获的重要性,并提供了资源自动管理的最佳实践方案。原创 2026-07-31 21:45:41 · 251 阅读 · 0 评论 -
Python 中的类型判断方法
方法用途适用场景type(obj)获取对象的确切类型需要精确判断类型时判断对象是否属于某个类型(包括父类)推荐,大多数场景判断类继承关系检查类是否派生自另一个类判断对象是否可调用检查函数、方法等判断对象是否有某个属性/方法鸭子类型检查type hints类型注解静态类型检查(不运行)原创 2026-07-31 18:00:00 · 236 阅读 · 0 评论 -
Python 中的封装、继承、多态
本文介绍了Python中面向对象编程的三大特性:封装、继承和多态。封装通过命名约定(如__name表示私有属性)和@property装饰器实现数据隐藏;继承支持单继承和多重继承,可通过super()调用父类方法;多态则通过方法重写和鸭子类型实现,不依赖继承关系。此外还介绍了抽象基类(ABC)用于定义接口规范。Python的面向对象实现灵活且强大,与其他语言相比更侧重约定而非强制约束。原创 2026-07-30 18:00:00 · 273 阅读 · 0 评论 -
Python 中动态添加属性和方法
本文介绍了Python中动态添加属性和方法的技巧。主要内容包括:1)动态添加实例和类属性,使用setattr/getattr函数;2)动态添加实例方法、类方法(@classmethod)和静态方法(@staticmethod)的不同方式;3)三种方法类型的参数特点和调用区别;4)通过setattr统一管理动态方法的添加;5)需要注意的__slots__限制和方法绑定问题。核心要点是:实例方法直接赋值,类方法需用classmethod包装,静态方法需用staticmethod包装,给类添加则所有实例可用,给单原创 2026-07-29 18:00:00 · 394 阅读 · 0 评论 -
Python 中的 reduce 函数:累积计算
reduce是 Python 中一个用于的函数,它会把一个序列中的元素,通过指定的函数,逐步归纳成一个单一的结果。它和mapfilter一样,是函数式编程的经典工具。原创 2026-07-28 18:00:00 · 311 阅读 · 0 评论 -
Python 循环结构中的 else
Python循环中的else子句用法解析:当循环未被break中断时会执行else块。对于for和while循环,else执行条件是:循环自然结束(迭代完毕或条件不满足)而非被break/return/异常中断。典型应用场景包括元素查找(找到时break跳过else,未找到时执行else)和重试机制。相比手动设置标志变量的传统写法,循环else语法更简洁。需注意else与循环break的关联性,而非循环内部if条件,避免将else简单理解为"循环结束就执行"。该语法特别适合需要判断循环是原创 2026-07-26 18:00:00 · 297 阅读 · 0 评论 -
Python 中的解包传参:* 和 **
Python解包传参功能详解:使用*和**操作符可将序列(列表/元组)和字典拆分为独立参数传递给函数。将序列解包为位置参数,**将字典解包为关键字参数(需键名匹配)。该特性可与args/**kwargs结合使用,实现灵活的参数收集。使用时需注意:位置参数优先、解包长度匹配、字典键名对应等规则。解包传参能显著提升代码简洁性和灵活性,是Python函数调用的重要技巧。原创 2026-07-25 18:00:00 · 591 阅读 · 0 评论 -
Python 字符串的index() 与 find()
Python字符串查找方法find()和index()的核心区别在于未找到子串时的处理方式:find()返回-1不报错,index()抛出ValueError异常。两者查找参数和用法完全一致,都支持指定起止位置。find()适合不确定子串是否存在的情况,配合if判断更安全;index()在确定子串存在时更简洁,或需要异常处理时使用。类似方法还有rfind()和rindex()实现反向查找。根据需求选择:不确定存在用find(),确定存在用index()。原创 2026-07-24 18:00:00 · 194 阅读 · 0 评论 -
Python 中的 match-case(模式匹配)
Python 3.10引入的match-case是一种强大的结构化模式匹配语法,比传统switch-case更灵活。它支持值匹配、多值匹配(使用|)、变量捕获(需大写变量名)和类型匹配(类似构造函数写法)。最强大的功能是解构匹配,可对序列(列表/元组)、字典和类实例进行结构解析(类需定义__match_args__)。与传统switch-case相比,match-case支持模式匹配、类型检查和结构化数据解构,而不仅仅是简单的值匹配。这种语法大大提升了代码的可读性和表达力,特别适合处理复杂数据结构。原创 2026-07-23 18:00:00 · 280 阅读 · 0 评论 -
字符编码:ASCII 和 Unicode
ASCII与Unicode是计算机字符编码的两种标准。ASCII是早期7位编码(128个字符),仅支持英文;Unicode则是统一全球字符的编码方案,通过码点唯一标识每个字符(如中文'中'=U+4E2D),并衍生出UTF-8(变长1-4字节)、UTF-16等存储格式。UTF-8兼容ASCII且空间高效,成为互联网主流编码。Python3默认使用Unicode字符串,处理文件时需显式指定UTF-8编码。现代开发中,Unicode+UTF-8已成为通用标准,能完美支持多语言环境。原创 2026-07-21 18:00:00 · 309 阅读 · 0 评论
分享