2026
09-29
09-29
写了5年Python才发现:这20个技巧,让我少写了一半代码
写Python代码时间长了,有些习惯会慢慢变。一开始只求能跑,后来会想怎么少写几行,怎么让下一个人看懂。下面这些技巧都不是教科书里的标准答案,是踩过坑以后留下的记号。列表推导式用多了会腻。换个思路,用生成器表达式处理大文件。读一个几百万行的日志,sum(1 for line in f if 'error' in line)比先读进列表再循环省内存。内存不是无限大的,尤其跑在容器里的时候。
继续阅读 >
这篇笔记从 Jupyter 环境开始,把 requests 原生调用、OpenAI SDK、.env 密钥管理、stream 流式输出一次讲清。
很多人写Python时会写很多重复代码。他们习惯把功能堆在一个文件里。时间长了,改一处就要检查十处。这不是Python的问题,是习惯的问题。
写了个 Python 工具想发给同事用,对方说"我没装 Python"。发 .py 文件过去等于让对方走一遍装环境、装依赖的流程,大概率用不起来。用 PyInstaller 把脚本打成 .exe,对方不用装任何东西,双击就能跑。
写Python代码的人经常遇到一个情况。同一个功能有好几种写法。选哪种写法,短时间看不出差别。项目变大以后,差别就出来了。
与 C、C++、Rust 以及其他编译型语言相比,CPython 在 CPU 密集型工作负载下确实可能慢很多。Global Interpreter Lock(GIL)、动态类型、对象分配以及解释器开销,长期以来限制了纯 Python 代码的执行速度。
很多人写Python会不自觉地绕远路。代码能跑,功能也对,就是看着别扭。这种别扭不是审美问题,是习惯问题。改掉几个习惯,代码立刻短一截,读起来也顺。
中秋想给家人、朋友、客户发张贺卡,去网上找图库模板,要么收费要么带水印,发出去"撞款"概率高。自己用 Python 画一张也不复杂:深蓝夜空 + 一轮圆月 + 祝福文字,名字自动填进去,每张都不一样。
Python 3.15即将发布。在这次的候选版本3.15.0rc2更新中,有趣的变化不再体现在阅读更新日志时候了。
Dash 框架入门:用纯 Python 构建交互式数据应用Dash 是一个由 Plotly 公司开发的开源框架,让你只用 Python 就能构建具有丰富交互性的 Web 应用。你不需要写任何 HTML、CSS 或 JavaScript,所有界面和逻辑都可以通过 Python 对象与回调函数完成。它非常适用于数据分析、仪表盘、机器学习演示等场景。
在日常办公场景中,合同审批、技术文档迭代、公文修订等工作中,经常需要对比两个 Word 文档版本之间的差异。虽然 Word 本身提供了“比较”功能,但当需要批量处理或集成到自动化流程中时,通过编程方式实现文档对比就变得非常必要。本文将介绍如何使用 Python 和 Free Spire.Doc for Python 库来实现 Word 文档的自动对比。
在很久很久以前,Python的包管理非常混乱,这导致不同的项目几乎无法同时运行,所以就出现了Python 环境管理的概念,不同项目的环境彼此隔离,开发者可以为不同项目分别管理依赖项、Python 版本和软件包。弄清其底层工作机制有助于排查依赖问题、构建可复现的应用程序,也便于管理复杂的 Python 项目。
写Python的人经常盯着大O符号看。他们花时间选对数据结构,用上生成器,避开嵌套循环。这些做法没错。可代码跑起来还是慢,尤其当数据量上去以后。问题往往藏在更细的地方。下面说三个点,每个都能让执行时间掉一截。
Python 3.13 引入了实验性的 free-threaded build,可以在没有 Global Interpreter Lock 的情况下运行。Python 3.14 又迈出了重要一步:free-threaded Python 现在已经得到正式支持。
写Python有些年头了。见过很多人卡在一些地方,不是语法问题,是思路没转过来。今天说的三个技巧,书上一般不专门讲,日常写代码却天天碰到。
上个月公司来了个新同事,叫小陈,刚毕业一年。leader让他接手我去年写的一个数据处理项目,里面有60多个Python文件,200多个函数。