标签

Python

Python 3.15 beta 2 发布:该动手验证了

来源: blog.python.org 57
Python 3.15.0 beta 2 已经出炉,这是正式发布前的倒数第三个 beta 版本。beta 阶段意味着不再接受新特性(feature freeze 已过),后续版本只会修 bug 和做小调整。如果你有库或项目需要兼容 3.15,现在就是最佳验证窗口——等到 release candidate 再测,留给修问题的时间就很短了。 Python...

Python 时间延迟:从 time.sleep 到异步等待的四种姿势

来源: realpython.com 56
程序不是越快越好。限速调用外部 API、轮询等待资源就绪、模拟用户操作节奏——这些场景都需要让代码"停一停"。Python 提供了不止一种暂停方式,选错工具会让整个进程卡死,选对了则既不浪费 CPU 又不拖慢其他任务。 下面从最基础的 开始,逐步升级到装饰器、多线程和 asyncio,每种方式附带可直接运行的代码。 让当前线程挂起指定秒数,精度取决于操...

Starlette 的 BadHost 漏洞:一个畸形 Host 头如何撕开 AI 代理的访问控制

来源: infoq.com 55
Starlette 是 Python Web 生态中用量最广的轻量框架之一——每周下载量 3.25 亿,FastAPI、Uvicorn 的底层 HTTP 处理都依赖它。而最近披露的 BadHost 漏洞(高危),让一个看似不起眼的 HTTP Host 头,变成了绕过路径级访问控制的钥匙。对于把 Starlette 当作 AI 代理、LLM 网关、模型评...

Starlette BadHost 漏洞:一个畸形 Host 头如何绕过 AI 代理的访问控制

来源: infoq.com 54
Starlette 是 Python 生态中用量最大的 Web 框架之一——每周下载量 3.25 亿,FastAPI、Uvicorn 等基础设施都直接依赖它。最近披露的 BadHost 漏洞(高危)揭示了一个容易被忽视的问题:当路径级访问控制遇上畸形的 HTTP 头,防线会从根部断裂。对于暴露在公网的 AI Agent 服务、LLM Gateway 和...

Python 正则表达式实战:从字符匹配到分组捕获

来源: realpython.com 59
正则表达式是文本处理的瑞士军刀——用几行模式就能完成原本需要几十行字符串操作才能做的事。Python 的 模块把这套工具直接搬进了标准库,但不少开发者对字符类、锚点、分组、交替和标志位的理解还停留在"能跑就行"的阶段。这篇文章把这些核心概念串起来,配上可以直接复制运行的代码,帮你从"凑出个模式"升级到"写出精准模式"。 字符类(character cl...

用 PEP 和 Protocol 让 Python 项目更规范

来源: realpython.com 64
Python 的生态之所以能持续演进,靠的不是某个核心团队的独断,而是 PEP(Python Enhancement Proposal)这套公开提案机制。Real Python 第 297 期播客里,Brett Cannon 回来聊了他最近参与的几项 PEP——从模块命名混乱、虚拟环境目录约定,到 Protocol(结构化子类型)。这些问题看似琐碎,但...

Python assert:用对了是利器,用错了是隐患

来源: realpython.com 47
很多开发者对 的理解停留在"写个检查,报错就停"的层面,但它在 Python 里有明确的设计意图和使用边界。搞清楚这些,你才能在调试、测试和文档化代码时真正发挥它的价值,而不是在生产环境里埋雷。 语句的完整语法是: 如果 为假,抛出 ,并把 作为错误信息;如果为真,什么都不发生。本质上它等价于: 关键点在于 。这个内置常量默认为 ,但当 Python ...

用 BNF 读懂 Python 语法规则——官方文档里的隐藏地图

来源: realpython.com 56
Python 官方文档里有一块容易被忽略的宝藏:语言参考中的 grammar 规则。它们用 BNF(Backus-Naur Form)记法写成,看起来像枯燥的形式化定义,但一旦你学会读它,就能精确理解每一个语法构造的边界——哪些写法合法、哪些不合法,以及为什么。这篇文章带你拆解 BNF 记法,并用它回答几个日常编程中容易踩坑的语法问题。 BNF 是一种...

Kimi Code 全面转向 TypeScript:Python CLI 工具的语言迁移实践

来源: oschina.net 62
Moonshot AI 的 Kimi Code 产品线刚完成了一次硬核的技术栈切换——曾经以 Python 为主力语言的 kimi-cli 正式进入停止维护阶段,取而代之的是以 TypeScript 构建的 kimi-code。从 GitHub 仓库的语言占比来看,这次迁移不是"加一点 TS 补补短板",而是彻底翻转:kimi-cli 仓库 Pytho...

VirtualEnv 21.4.0:Python 虚拟环境工具的持续精简

来源: oschina.net 59
Python 项目多了,依赖冲突几乎是必然事件——A 项目要 Django 3.2,B 项目要 Django 4.1,全局 一装就打架。VirtualEnv 从根上解决这个问题:每个项目一套独立运行环境,互不干扰,部署时整包带走,服务器上不用再折腾依赖。 21.4.0 版本延续了近几个版本的"瘦身"路线,改动不大但方向明确。 从 changelog 看...