- 为什么先调用一次 any(),后面的循环就少了几条数据?本文用内存示例观察生成器的消费位置,区分存在性判断与非空判断,并比较列表、重新创建迭代器和 itertools.tee() 的适用条件与缓存边界。 为什么先调用一次 any(),后面的循环就少了几条数据?本文用内存示例观察生成器的消费位置,区分存在性判断与非空判断,并比较列表、重新创建迭代器和 itertools.tee() 的适用条件与缓存边界。
- 内存优化降低资源消耗。涵盖 __slots__ 减少内存、生成器替代列表、集合去重、字符串驻留、小对象池、gc 手动控制、weakref 弱引用、内存映射(mmap)、大数据集分块处理、内存分析工具(memory_profiler/objgraph)。 文章从技术背景和发展历程入手,帮助读者理解该技术的产生原因和演进脉络。通过对比不同版本的特性变化,分析技术选型的考量因素,为读者提供全面的技... 内存优化降低资源消耗。涵盖 __slots__ 减少内存、生成器替代列表、集合去重、字符串驻留、小对象池、gc 手动控制、weakref 弱引用、内存映射(mmap)、大数据集分块处理、内存分析工具(memory_profiler/objgraph)。 文章从技术背景和发展历程入手,帮助读者理解该技术的产生原因和演进脉络。通过对比不同版本的特性变化,分析技术选型的考量因素,为读者提供全面的技...
- 用整数搜索、空列表和 continue 的可运行示例,说明循环 else 的触发条件,并区分 break、return、异常及嵌套循环的退出范围。 用整数搜索、空列表和 continue 的可运行示例,说明循环 else 的触发条件,并区分 break、return、异常及嵌套循环的退出范围。
- 通过一个不依赖第三方库的小脚本,理解 argparse 的位置参数、可选参数、类型转换和帮助提示。 通过一个不依赖第三方库的小脚本,理解 argparse 的位置参数、可选参数、类型转换和帮助提示。
- 最近把几个平时手动跑的运维小脚本接进了 AI Agent,用的是 MCP(Model Context Protocol)。整个过程比想象中简单:不需要改脚本逻辑,只要在外面包一层协议适配,Agent 就能像调用内置工具一样调用它们。这里记录一下完整实现和踩到的坑。## 一、MCP 解决的是什么问题在没有 MCP 之前,给 Agent 接工具基本是三种做法:写死在提示词里让模型输出命令、自己定... 最近把几个平时手动跑的运维小脚本接进了 AI Agent,用的是 MCP(Model Context Protocol)。整个过程比想象中简单:不需要改脚本逻辑,只要在外面包一层协议适配,Agent 就能像调用内置工具一样调用它们。这里记录一下完整实现和踩到的坑。## 一、MCP 解决的是什么问题在没有 MCP 之前,给 Agent 接工具基本是三种做法:写死在提示词里让模型输出命令、自己定...
- 现象def add(item, lst=[]): lst.append(item) return lstprint(add(1)) # [1]print(add(2)) # [1, 2],而不是预期的 [2]第二次调用并没有得到一个空列表,第一次的结果还留在里面。 原因函数的默认值只在函数定义时求值一次,之后所有调用共享同一个默认对象。[] 是可变对象,append 改的是... 现象def add(item, lst=[]): lst.append(item) return lstprint(add(1)) # [1]print(add(2)) # [1, 2],而不是预期的 [2]第二次调用并没有得到一个空列表,第一次的结果还留在里面。 原因函数的默认值只在函数定义时求值一次,之后所有调用共享同一个默认对象。[] 是可变对象,append 改的是...
- 装了一个包,运行却提示找不到模块,这种情况多半不是包没装,而是装到了另一个解释器名下。Python 环境一多,系统自带、手动安装、虚拟环境里的解释器很容易混在一起,pip 和 python 若不是同一套,装与用就会错位。 先对齐两个命令在终端里先看两个命令到底指向哪里。which python 与 which pip 若路径不一致,后面所有排查都要先停下来。更稳妥的办法,是用 python ... 装了一个包,运行却提示找不到模块,这种情况多半不是包没装,而是装到了另一个解释器名下。Python 环境一多,系统自带、手动安装、虚拟环境里的解释器很容易混在一起,pip 和 python 若不是同一套,装与用就会错位。 先对齐两个命令在终端里先看两个命令到底指向哪里。which python 与 which pip 若路径不一致,后面所有排查都要先停下来。更稳妥的办法,是用 python ...
- 本文介绍 Astral 出品、用 Rust 编写的 Python 包与项目管理工具 uv:它以一个工具覆盖建项目、加依赖、锁版本、同步环境、运行项目、管理 Python 版本和调用已发布工具等环节,并结合 pyproject.toml 与 uv.lock 说明一套清晰的日常工作流。 本文介绍 Astral 出品、用 Rust 编写的 Python 包与项目管理工具 uv:它以一个工具覆盖建项目、加依赖、锁版本、同步环境、运行项目、管理 Python 版本和调用已发布工具等环节,并结合 pyproject.toml 与 uv.lock 说明一套清晰的日常工作流。
- 导入 CSV 时,逗号不一定是分隔符,一行文本也不一定是一条记录。本文用 Python 标准库的本地合成实验,说明引号、换行和字段数量分别影响什么,并给出一个可运行的结构校验示例。 导入 CSV 时,逗号不一定是分隔符,一行文本也不一定是一条记录。本文用 Python 标准库的本地合成实验,说明引号、换行和字段数量分别影响什么,并给出一个可运行的结构校验示例。
- 用三笔合成订单复现 pandas 合并后的行数与金额膨胀,结合 validate、indicator 和空键拒绝规则,验证多对一连接的安全边界。Python 3.12.3、pandas 3.0.3,本地44项检查通过,含AI辅助说明。 用三笔合成订单复现 pandas 合并后的行数与金额膨胀,结合 validate、indicator 和空键拒绝规则,验证多对一连接的安全边界。Python 3.12.3、pandas 3.0.3,本地44项检查通过,含AI辅助说明。
- 下载文件夹越积越乱,文件名带空格、混着中文和日期,手动改名费时又容易出错。本文用 Python 标准库 pathlib 写一个“先预览、再执行”的批量重命名小脚本:把空格统一换成下划线、按扩展名归类预览,并做同名冲突检测,确认无误后再真正改名。 下载文件夹越积越乱,文件名带空格、混着中文和日期,手动改名费时又容易出错。本文用 Python 标准库 pathlib 写一个“先预览、再执行”的批量重命名小脚本:把空格统一换成下划线、按扩展名归类预览,并做同名冲突检测,确认无误后再真正改名。
- functools.lru_cache 是 Python 标准库里性价比最高的性能优化工具之一:加一行装饰器,就能把重复计算变成字典查找。但它用错了也会带来内存泄漏、结果错乱等隐蔽问题。本文用可运行的例子讲清楚它的用法和常见坑。 一、基本用法from functools import lru_cacheimport time@lru_cache(maxsize=None)def fib(n:... functools.lru_cache 是 Python 标准库里性价比最高的性能优化工具之一:加一行装饰器,就能把重复计算变成字典查找。但它用错了也会带来内存泄漏、结果错乱等隐蔽问题。本文用可运行的例子讲清楚它的用法和常见坑。 一、基本用法from functools import lru_cacheimport time@lru_cache(maxsize=None)def fib(n:...
- 从 __enter__/__exit__ 协议、异常吞咽陷阱、contextlib 的实现原理到 async with 的差异,把平时用 with 时容易忽略的几个底层细节一次讲清楚。 从 __enter__/__exit__ 协议、异常吞咽陷阱、contextlib 的实现原理到 async with 的差异,把平时用 with 时容易忽略的几个底层细节一次讲清楚。
- 本文结合近期项目实践,整理了一套相对通用的思路,希望对同行有所启发。现状与问题在原有架构下,核心瓶颈集中在 连接池:连接复用并设置合理上限。随着业务量增长,该问题在高峰期被进一步放大。方案设计整体思路是用 ECS 替换原方案中耦合较重的部分,把 写入链路 拆成独立可水平扩展的单元。关键点有三:1. 本地缓存 + 分布式缓存两级2. 边界条件单独处理,避免主链路被污染3. 保留灰度开关,便于回... 本文结合近期项目实践,整理了一套相对通用的思路,希望对同行有所启发。现状与问题在原有架构下,核心瓶颈集中在 连接池:连接复用并设置合理上限。随着业务量增长,该问题在高峰期被进一步放大。方案设计整体思路是用 ECS 替换原方案中耦合较重的部分,把 写入链路 拆成独立可水平扩展的单元。关键点有三:1. 本地缓存 + 分布式缓存两级2. 边界条件单独处理,避免主链路被污染3. 保留灰度开关,便于回...
- 程序难免出错:用户输入了字母却要求做除法,文件路径写错了打不开,网络请求超时断了连接。Python 把运行时的错误统一建模为「异常」(Exception),并提供 try/except 机制让我们优雅地处理它们。掌握异常处理,是从"能写代码"到"能写可靠代码"的关键一步。 一、try/except 基本写法try: num = int(input("请输入一个整数:")) pri... 程序难免出错:用户输入了字母却要求做除法,文件路径写错了打不开,网络请求超时断了连接。Python 把运行时的错误统一建模为「异常」(Exception),并提供 try/except 机制让我们优雅地处理它们。掌握异常处理,是从"能写代码"到"能写可靠代码"的关键一步。 一、try/except 基本写法try: num = int(input("请输入一个整数:")) pri...
上滑加载中
推荐直播
-
华为云码道Agent集成与鸿蒙实战2026/08/11 周二 19:00-21:00
王一男-华为云码道产品规划专家;李炎-华为云码道产品专家;彭江敏-华为云鸿蒙端云一体化开发专家
本次直播带你解读华为云码道7月份产品新特性、新功能。更有专家演示码道Agent Space × 钉钉机器集成实战,从0到1打通消息通道;码道鸿蒙端云一体化实战,快速搭建员工签到系统。
回顾中 -
华为云开发者AI素养直播课·第五期2026/09/04 周五 16:00-18:00
林华鼎-华为云AI开发者运营负责人;蒋春阳-华为云AI开发者案例开发专家
本期直播内容: AI工具体验营 · 第5-8课连讲。Agent-Team 多智能体协作完成毕业设计实践
回顾中 -
华为云开发者AI素养ClassRoom·第六期2026/09/08 周二 19:00-20:00
樊渊-2026华为软件挑战赛冠军
高手来了:看软挑高手解析二维排样问题—从工业难题到算法突破
回顾中
热门标签