﻿<?xml version="1.0" encoding="utf-8" ?>
<rss version="2.0">
<channel>
<title><![CDATA[编程学习网]]></title>
<description><![CDATA[编程学习网_Python教程_C++教程]]></description>
<link>http://www.phpxs.com</link>
<language>zh_CN</language>
<pubDate>2026-05-30 12:59:28</pubDate>
<lastBuildDate>2026-05-30 12:59:28</lastBuildDate>
<generator>YBlog RSS Generator</generator>
<ttl>5</ttl>
<item>
<title><![CDATA[108款扩展程序被发现窃取谷歌身份验证信息和Telegram会话等]]></title>
<link>http://www.phpxs.com/post/14194/</link>
<description><![CDATA[<p>
	<img src="http://www.phpxs.com/uploads/202605/30/f80bcb48e8d4282476ed850a9422e1a2.png" alt="" />
</p>
<p>
	<p>
		<span style="font-size:16px;">安全研究团队 Socket 日前发布分析报告披露 Chrome Web Store 中存在的 108 款恶意扩展程序，截至本文发布时，这些恶意扩展程序仍然没有谷歌下架，建议用户自查确保安全。</span>
	</p>
	<p>
		<span style="font-size:16px;">这些扩展程序看起来毫无关联 (不同开发者名称、不同注册地址、不同的隐私政策网站)，不过实际上都连接到相同的 C2 服务器用于回传信息，因此这显然属于同一个攻击团队。</span>
	</p>
	<p>
		<br />
	</p>
	<div class="message-box message-style module-radius error" style="margin:0px 0px 20px;padding:20px;border:0px;">
		<p>
			<span style="font-size:16px;">恶意扩展分析概览：</span>
		</p>
	</div>
	<ul>
		<li>
			<span style="font-size:16px;">54 个扩展程序窃取谷歌账号信息：窃取的信息包括用户邮箱、姓名、头像等，然后回传到服务器。</span>
		</li>
		<li>
			<span style="font-size:16px;">1 个扩展程序用于劫持 Telegram 会话：这个扩展程序提供所谓的多账号管理功能，但实际上会注入或劫持会话。</span>
		</li>
		<li>
			<span style="font-size:16px;">45 个扩展程序包含通用后门：可以通过服务器下发命令实现远程控制等目的。</span>
		</li>
		<li>
			<span style="font-size:16px;">部分扩展程序用于注入广告：在用户访问页面时注入广告或任意 JavaScript 脚本。</span>
		</li>
	</ul>
	<p>
		<span style="font-size:16px;">这些扩展程序均使用相同的子域名例如 tg.cloudapi.stream / mines.cloudapi.stream / api.cloudapi.stream 进行数据外传和心跳通信，形成高度集中的 C2 架构。</span>
	</p>
	<p>
		<span style="font-size:16px;">谷歌尚未删除这些扩展程序：</span>
	</p>
	<p>
		<span style="font-size:16px;">由于牵涉的扩展程序非常多，指望用户自查并删除是不现实的，Socket 已经将恶意扩展信息通报给谷歌，不过谷歌目前还未删除这些恶意扩展程序。</span>
	</p>
	<p>
		<span style="font-size:16px;">如果谷歌执行下架操作，则也会通过云端推送信标到用户端，这样用户的 Chrome 浏览器就会自动禁用这些扩展程序，以此可以安全快速的降低恶意扩展造成的影响。</span>
	</p>
<span style="font-size:16px;"><span style="color:#454545;font-size:16px;background-color:#FFFFFF;font-family:Verdana, &quot;">以上就是“</span><span style="color:#454545;font-size:16px;background-color:#FFFFFF;font-family:Verdana, &quot;">108款扩展程序被发现窃取谷歌身份验证信息和Telegram会话等</span><span style="color:#454545;font-size:16px;background-color:#FFFFFF;font-family:Verdana, &quot;">”</span><span style="color:#454545;font-size:16px;background-color:#FFFFFF;font-family:Verdana, &quot;">的详细内容，想要了解更多</span><a href="http://www.phpxs.com/" target="_blank">Python</a><a href="http://www.phpxs.com/" target="_blank">教程</a><span style="color:#454545;font-size:16px;background-color:#FFFFFF;font-family:Verdana, &quot;">欢迎持续关注</span><a href="http://www.phpxs.com/" target="_blank">编程</a><span style="color:#454545;font-size:16px;background-color:#FFFFFF;font-family:Verdana, &quot;">学习网。</span></span>
</p>]]></description>
<pubDate>2026-05-30</pubDate>
</item>
<item>
<title><![CDATA[谷歌宣布为One和AI Pro订阅用户提供5折YouTube Premium订阅权限]]></title>
<link>http://www.phpxs.com/post/14193/</link>
<description><![CDATA[<p>
	<img src="http://www.phpxs.com/uploads/202605/30/64081e00f22306d19e03ded48fc75d54.png" alt="" />
</p>
<p>
	<p>
		<span style="font-size:16px;">谷歌日前宣布所有符合特定条件的用户都可以享受 YouTube Premium 全年订阅的 5 折优惠，这项最新优惠活动主要面向每月消费 10 美元及以上的 Google AI Pro 或 Google One 订阅用户。</span>
	</p>
	<p>
		<span style="font-size:16px;">Google One Ultra 订阅已经包含 YouTube Premium 权益，而其他订阅则不包含这项权益，所以谷歌现在为符合条件的用户推出特惠活动，让用户可以半价订阅 YouTube Premium。</span>
	</p>
	<p>
		<span style="font-size:16px;">谷歌 AI 订阅副总裁 Shimrit Ben-Yair 表示：</span>
	</p>
	<p>
		<span style="font-size:16px;">应广大用户要求，即日起所有新老订阅每月订阅费超过 10 美元的用户都可以享受 YouTube Premium 全年半价订阅，将存储空间和 AI 功能以及无广告观看等功能捆绑，即可获得极致的谷歌体验。</span>
	</p>
	<p>
		<span style="font-size:16px;">这项优惠政策适用于居住在美国、加拿大、巴西、德国、法国和日本的用户，活动有效期至 2026 年 4 月 29 日，必须一次性按照年度订阅时才能获得半价优惠。</span>
	</p>
	<div class="google-auto-placed ap_container" style="margin:0px;padding:0px;border:0px;">
		<div id="aswift_7_host" style="margin:0px;padding:0px;">
			<div class="google-aiuf" style="margin:0px;padding:0px;border:0px;">
				<div class="goog-rentries" style="border:initial !important;margin:initial !important;padding:initial !important;text-align:inherit !important;vertical-align:initial !important;">
					<div style="border:initial !important;margin:initial !important;padding:initial !important;text-align:inherit !important;vertical-align:initial !important;">
					</div>
				</div>
			</div>
		</div>
	</div>
	<p>
		<span style="font-size:16px;">另外特别需要注意的是如果你当前已经订阅 YouTube Premium，那么需要先取消订阅避免重复收费，取消订阅后再转到 Google One 或 Google AI Pro 里订阅 YouTube Premium。</span>
	</p>
<span style="font-size:16px;"><span style="color:#454545;font-size:16px;background-color:#FFFFFF;font-family:Verdana, &quot;">以上就是“</span><span style="color:#454545;font-size:16px;background-color:#FFFFFF;font-family:Verdana, &quot;">谷歌宣布为One和AI Pro订阅用户提供5折YouTube Premium订阅权限</span><span style="color:#454545;font-size:16px;background-color:#FFFFFF;font-family:Verdana, &quot;">”</span><span style="color:#454545;font-size:16px;background-color:#FFFFFF;font-family:Verdana, &quot;">的详细内容，想要了解更多</span><a href="http://www.phpxs.com/" target="_blank">Python</a><a href="http://www.phpxs.com/" target="_blank">教程</a><span style="color:#454545;font-size:16px;background-color:#FFFFFF;font-family:Verdana, &quot;">欢迎持续关注</span><a href="http://www.phpxs.com/" target="_blank">编程</a><span style="color:#454545;font-size:16px;background-color:#FFFFFF;font-family:Verdana, &quot;">学习网。</span></span>
</p>]]></description>
<pubDate>2026-05-30</pubDate>
</item>
<item>
<title><![CDATA[Python 3.15 新变化惊喜不断！]]></title>
<link>http://www.phpxs.com/post/14192/</link>
<description><![CDATA[<p>
	<img src="http://www.phpxs.com/uploads/202605/30/5ba45da8b8ab45832b72d3dd1ac3e095.png" alt="" />
</p>
<p>
	<p class="MsoNormal">
		<span style="font-size:16px;">每个</span><span style="font-size:16px;"> Python </span><span style="font-size:16px;">版本都号称更快、更简洁、更智能、更符合人体工程学</span><span style="font-size:16px;">……</span>
	</p>
	<p class="MsoNormal">
		<span style="font-size:16px;">但大多数时候，这些变化要么极其小众，要么只是技术上很厉害，和人们编写</span><span style="font-size:16px;"> Python </span><span style="font-size:16px;">的方式没什么关系。</span>
	</p>
	<p class="MsoNormal">
		<span style="font-size:16px;">Python 3.15 </span><span style="font-size:16px;">给人的感觉不一样。</span>
	</p>
	<p class="MsoNormal">
		<span style="font-size:16px;">并不是因为每个新特性都具有革命性。有些功能说实话早就该有了；有些功能更像是在为之前的实验性设计做收尾清理；还有一些，则是编程语言爱好者才会在意的东西。</span>
	</p>
	<p class="MsoNormal">
		<span style="font-size:16px;">近年来</span><span style="font-size:16px;">Python</span><span style="font-size:16px;">发布的版本不少，真正对开发者影响明显的少之又少，</span><span style="font-size:16px;">Python 3.15</span><span style="font-size:16px;">是其中之一。</span>
	</p>
	<p class="MsoNormal">
		<span style="font-size:16px;">仅仅延迟导入（</span><span style="font-size:16px;">lazy imports</span><span style="font-size:16px;">）这一项，就会改变很多大型 </span><span style="font-size:16px;">Python </span><span style="font-size:16px;">应用的启动方式。</span>
	</p>
	<p class="MsoNormal">
		<span style="font-size:16px;">有意思的是，</span><span style="font-size:16px;">Python 3.15 </span><span style="font-size:16px;">还回滚了 </span><span style="font-size:16px;">Python 3.14 </span><span style="font-size:16px;">中一个最大的改动。</span>
	</p>
	<p class="MsoNormal">
		<span style="font-size:16px;">老实说，这是</span><span style="font-size:16px;"> Python </span><span style="font-size:16px;">开发文化的真实体现。他们推出了增量垃圾回收器（</span><span style="font-size:16px;">incremental garbage collector</span><span style="font-size:16px;">），结果大家抱怨内存占用有问题，于是又把它移除了。</span>
	</p>
	<p class="MsoNormal">
		<span style="font-size:16px;">这种文化挺好，比假装每一个实验性改动都</span><span style="font-size:16px;">“</span><span style="font-size:16px;">英明伟大</span><span style="font-size:16px;">”</span><span style="font-size:16px;">要健康得多。</span>
	</p>
	<p class="MsoNormal">
		<span style="font-size:16px;">1 </span><span style="font-size:16px;">延迟导入（</span><span style="font-size:16px;">lazy imports</span><span style="font-size:16px;">）这东西本来几年前就该有了</span>
	</p>
	<p class="MsoNormal">
		<span style="font-size:16px;">这大概是这次发布最实用的功能。</span>
	</p>
	<p class="MsoNormal">
		<span style="font-size:16px;">Python </span><span style="font-size:16px;">启动速度一直有个奇怪的问题：它会导入半个生态系统，这像是在代码真正运行前交了一遍税。</span>
	</p>
	<p class="MsoNormal">
		<span style="font-size:16px;">你导入一个框架，那个框架再导入六个工具模块，那些模块又继续导入二十多个。最后，你的</span><span style="font-size:16px;"> CLI </span><span style="font-size:16px;">工具光是输出一个 </span><span style="font-size:16px;">--help </span><span style="font-size:16px;">就要花两秒钟。</span>
	</p>
	<p class="MsoNormal">
		<span style="font-size:16px;">很多年来，人们一直在手动绕开这个问题：</span>
	</p>
	<p class="MsoNormal">
		<span style="font-size:16px;">if&nbsp;expensive_feature_enabled:&nbsp; &nbsp;&nbsp;import&nbsp;pandas</span>
	</p>
	<p class="MsoNormal">
		<span style="font-size:16px;">或者：</span>
	</p>
	<p class="MsoNormal">
		<span style="font-size:16px;">def&nbsp;do_something():&nbsp; &nbsp;&nbsp;import&nbsp;torch</span>
	</p>
	<p class="MsoNormal">
		<span style="font-size:16px;">不是因为这样写更优雅，而是因为启动延迟真的很重要。</span>
	</p>
	<p class="MsoNormal">
		<span style="font-size:16px;">现在，</span><span style="font-size:16px;">Python </span><span style="font-size:16px;">终于官方支持延迟导入了。</span>
	</p>
	<p class="MsoNormal">
		<span style="font-size:16px;">模块可以等到真正被使用时再加载，而不是在启动阶段一股脑全部导入。更重要的是，很多现有的</span><span style="font-size:16px;"> import </span><span style="font-size:16px;">语句都能直接变成延迟加载，不需要把整个代码库重构成被依赖关系诅咒的迷宫。</span>
	</p>
	<p class="MsoNormal">
		<span style="font-size:16px;">这一点，比语法本身更重要。</span>
	</p>
	<p class="MsoNormal">
		<span style="font-size:16px;">它真正的价值体现在：</span>
	</p>
	<p class="MsoNormal">
		<span style="font-size:16px;">CLI </span><span style="font-size:16px;">工具</span>
	</p>
	<p class="MsoNormal">
		<span style="font-size:16px;">开发者工具链</span>
	</p>
	<p class="MsoNormal">
		<span style="font-size:16px;">大型</span><span style="font-size:16px;"> Web </span><span style="font-size:16px;">应用</span>
	</p>
	<p class="MsoNormal">
		<span style="font-size:16px;">那些</span><span style="font-size:16px;"> import </span><span style="font-size:16px;">树离谱到爆炸的 </span><span style="font-size:16px;">AI </span><span style="font-size:16px;">技术栈</span>
	</p>
	<p class="MsoNormal">
		<span style="font-size:16px;">基本上所有一不小心就长成</span><span style="font-size:16px;">“</span><span style="font-size:16px;">操作系统</span><span style="font-size:16px;">”</span><span style="font-size:16px;">的 </span><span style="font-size:16px;">Python </span><span style="font-size:16px;">项目</span>
	</p>
	<p class="MsoNormal">
		<span style="font-size:16px;">而且，如果你的代码本来就写得很规范，这个特性几乎没什么副作用。</span>
	</p>
	<p class="MsoNormal">
		<span style="font-size:16px;">不过说实话：有些项目大概要第一次意识到，自己对</span><span style="font-size:16px;"> import </span><span style="font-size:16px;">副作用的依赖比想象中严重得多。比如假定</span><span style="font-size:16px;">import</span><span style="font-size:16px;">时会执行某个逻辑，但因为现在变成</span><span style="font-size:16px;">lazy import</span><span style="font-size:16px;">了，这个逻辑不会马上执行。如果项目有这样对</span><span style="font-size:16px;">import</span><span style="font-size:16px;">副作用的依赖，要改过来。</span>
	</p>
	<p class="MsoNormal">
		<span style="font-size:16px;">Python </span><span style="font-size:16px;">开发者总是喜欢假装 </span><span style="font-size:16px;">import </span><span style="font-size:16px;">只是声明，但很多 </span><span style="font-size:16px;">import </span><span style="font-size:16px;">本质上是穿着</span><span style="font-size:16px;">import</span><span style="font-size:16px;">马甲的初始化脚本。</span>
	</p>
	<p class="MsoNormal">
		<span style="font-size:16px;">2 JIT </span><span style="font-size:16px;">终于在基准测试里</span><span style="font-size:16px;">“</span><span style="font-size:16px;">看得见</span><span style="font-size:16px;">”</span><span style="font-size:16px;">了</span>
	</p>
	<p class="MsoNormal">
		<span style="font-size:16px;">Python </span><span style="font-size:16px;">在 </span><span style="font-size:16px;">3.13 </span><span style="font-size:16px;">版本中引入了 </span><span style="font-size:16px;">JIT</span><span style="font-size:16px;">。</span>
	</p>
	<p class="MsoNormal">
		<span style="font-size:16px;">当时大家的反应基本是：</span><span style="font-size:16px;">“</span><span style="font-size:16px;">哦，行吧。挺酷的。然后呢？</span><span style="font-size:16px;">”</span>
	</p>
	<p class="MsoNormal">
		<span style="font-size:16px;">因为性能提升既小又不稳定。</span>
	</p>
	<p class="MsoNormal">
		<span style="font-size:16px;">这倒不一定算失败，最初几个版本更像是在铺基础设施。问题在于，人们一听到</span><span style="font-size:16px;">JIT </span><span style="font-size:16px;">编译器，期待的往往是那种非常夸张的性能飞跃。</span>
	</p>
	<p class="MsoNormal">
		<span style="font-size:16px;">Python 3.15 </span><span style="font-size:16px;">是第一个让这些改进开始显得</span><span style="font-size:16px;">“</span><span style="font-size:16px;">真实</span><span style="font-size:16px;">”</span><span style="font-size:16px;">的版本。</span>
	</p>
	<p class="MsoNormal">
		<span style="font-size:16px;">根据不同工作负载和平台，官方报告的性能提升大约在</span><span style="font-size:16px;"> 8% </span><span style="font-size:16px;">到 </span><span style="font-size:16px;">13% </span><span style="font-size:16px;">的几何平均值之间。</span>
	</p>
	<p class="MsoNormal">
		<span style="font-size:16px;">当然，这并不会突然把</span><span style="font-size:16px;"> Python </span><span style="font-size:16px;">变成 </span><span style="font-size:16px;">Rust</span><span style="font-size:16px;">。</span>
	</p>
	<p class="MsoNormal">
		<span style="font-size:16px;">但对于这样一种被广泛使用的语言来说，自动获得</span><span style="font-size:16px;"> 10% </span><span style="font-size:16px;">左右的性能提升，也绝对不算小事。</span>
	</p>
	<p class="MsoNormal">
		<span style="font-size:16px;">尤其是因为，大多数</span><span style="font-size:16px;"> Python </span><span style="font-size:16px;">性能优化工作通常意味着：</span>
	</p>
	<p class="MsoNormal">
		<span style="font-size:16px;">用</span><span style="font-size:16px;"> C </span><span style="font-size:16px;">重写热点路径</span>
	</p>
	<p class="MsoNormal">
		<span style="font-size:16px;">把所有东西都硬塞进</span><span style="font-size:16px;"> NumPy </span><span style="font-size:16px;">向量化</span>
	</p>
	<p class="MsoNormal">
		<span style="font-size:16px;">到处加缓存层</span>
	</p>
	<p class="MsoNormal">
		<span style="font-size:16px;">假装</span><span style="font-size:16px;"> asyncio </span><span style="font-size:16px;">解决了架构问题</span>
	</p>
	<p class="MsoNormal">
		<span style="font-size:16px;">如果</span><span style="font-size:16px;"> CPython </span><span style="font-size:16px;">能继续在不要求整个生态系统重写的前提下，让</span><span style="font-size:16px;">“</span><span style="font-size:16px;">普通 </span><span style="font-size:16px;">Python”</span><span style="font-size:16px;">变得更快，这件事就很重要。</span>
	</p>
	<p class="MsoNormal">
		<span style="font-size:16px;">更有意思的是，这些</span><span style="font-size:16px;"> JIT </span><span style="font-size:16px;">提升并不是靠某个</span><span style="font-size:16px;">“</span><span style="font-size:16px;">大招</span><span style="font-size:16px;">”</span><span style="font-size:16px;">实现的，而是一整套运行时优化的组合：</span>
	</p>
	<p class="MsoNormal">
		<span style="font-size:16px;">tracing</span><span style="font-size:16px;">（追踪）机制改进</span>
	</p>
	<p class="MsoNormal">
		<span style="font-size:16px;">更好的机器码生成</span>
	</p>
	<p class="MsoNormal">
		<span style="font-size:16px;">寄存器分配优化</span>
	</p>
	<p class="MsoNormal">
		<span style="font-size:16px;">引用计数优化</span>
	</p>
	<p class="MsoNormal">
		<span style="font-size:16px;">基本上全是那种绝大多数</span><span style="font-size:16px;"> Python </span><span style="font-size:16px;">用户不会想到的底层工程细节</span><span style="font-size:16px;">——</span><span style="font-size:16px;">除非他们哪天手滑打开了 </span><span style="font-size:16px;">CPython </span><span style="font-size:16px;">内部源码。</span>
	</p>
	<p class="MsoNormal">
		<span style="font-size:16px;">开发者会立刻感觉到差异吗？这取决于具体工作负载。</span>
	</p>
	<p class="MsoNormal">
		<span style="font-size:16px;">和之前几个版本不同的是，这次终于不只是</span><span style="font-size:16px;">“</span><span style="font-size:16px;">理论上的提升</span><span style="font-size:16px;">”</span><span style="font-size:16px;">了。</span>
	</p>
	<p class="MsoNormal">
		<span style="font-size:16px;">3 frozendict </span><span style="font-size:16px;">属于那种争论了很多年的功能</span>
	</p>
	<p class="MsoNormal">
		<span style="font-size:16px;">Python </span><span style="font-size:16px;">几乎不会新增内置数据结构。</span>
	</p>
	<p class="MsoNormal">
		<span style="font-size:16px;">一旦真加了，意味着整个生态已经用各种糟糕的方式把同一个东西重复造了一千遍。</span>
	</p>
	<p class="MsoNormal">
		<span style="font-size:16px;">frozendict </span><span style="font-size:16px;">就是这种情况。</span>
	</p>
	<p class="MsoNormal">
		<span style="font-size:16px;">不可变字典以前早就在各种库里存在了。有人用</span><span style="font-size:16px;"> tuple </span><span style="font-size:16px;">变通实现；有人包装普通 </span><span style="font-size:16px;">dict</span><span style="font-size:16px;">；还有人专门写自定义类。</span>
	</p>
	<p class="MsoNormal">
		<span style="font-size:16px;">现在终于有了官方版本。</span>
	</p>
	<p class="MsoNormal">
		<span style="font-size:16px;">config&nbsp;= frozendict({"host":&nbsp;"localhost",&nbsp;"port":&nbsp;5432})</span>
	</p>
	<p class="MsoNormal">
		<span style="font-size:16px;">你没法修改它。它是可哈希的（</span><span style="font-size:16px;">hashable</span><span style="font-size:16px;">），可以安全地作为字典的键来使用。</span>
	</p>
	<p class="MsoNormal">
		<span style="font-size:16px;">很简单。</span>
	</p>
	<p class="MsoNormal">
		<span style="font-size:16px;">说实话，这不像是什么炫酷的新特性，更像是</span><span style="font-size:16px;"> Python </span><span style="font-size:16px;">终于承认了现实。</span>
	</p>
	<p class="MsoNormal">
		<span style="font-size:16px;">4 sentinel() </span><span style="font-size:16px;">修复了一个出奇烦人的老问题</span>
	</p>
	<p class="MsoNormal">
		<span style="font-size:16px;">这是那种乍一听不重要，但只要你</span><span style="font-size:16px;"> Python </span><span style="font-size:16px;">写得够久，就一定会遇到的功能。</span>
	</p>
	<p class="MsoNormal">
		<span style="font-size:16px;">很多代码库里都会这么写：</span>
	</p>
	<p class="MsoNormal">
		<span style="font-size:16px;">MISSING&nbsp;= object()</span>
	</p>
	<p class="MsoNormal">
		<span style="font-size:16px;">为什么？因为</span><span style="font-size:16px;"> None </span><span style="font-size:16px;">有时候本身就是合法值。</span>
	</p>
	<p class="MsoNormal">
		<span style="font-size:16px;">所以开发者只能创建一个匿名、唯一的对象充当占位符。</span>
	</p>
	<p class="MsoNormal">
		<span style="font-size:16px;">问题在于，这种对象既丑陋，又缺乏自解释性，对类型检查也不友好，而且整体上总给人一种</span><span style="font-size:16px;">“</span><span style="font-size:16px;">临时凑合</span><span style="font-size:16px;">”</span><span style="font-size:16px;">的感觉。</span>
	</p>
	<p class="MsoNormal">
		<span style="font-size:16px;">现在终于有了官方</span><span style="font-size:16px;"> API</span><span style="font-size:16px;">：</span>
	</p>
	<p class="MsoNormal">
		<span style="font-size:16px;">NOT_SET&nbsp;= sentinel("NOT_SET")</span>
	</p>
	<p class="MsoNormal">
		<span style="font-size:16px;">可读性更好了，打印输出更正常，和类型系统的配合也更自然。</span>
	</p>
	<p class="MsoNormal">
		<span style="font-size:16px;">这恰恰是</span><span style="font-size:16px;"> Python </span><span style="font-size:16px;">最擅长的那类语言改进。</span>
	</p>
	<p class="MsoNormal">
		<span style="font-size:16px;">不是什么革命性突破，只是把一些没必要的</span><span style="font-size:16px;">“</span><span style="font-size:16px;">奇怪写法</span><span style="font-size:16px;">”</span><span style="font-size:16px;">慢慢消灭掉而已。</span>
	</p>
	<p class="MsoNormal">
		<span style="font-size:16px;">5 </span><span style="font-size:16px;">新的性能分析器（</span><span style="font-size:16px;">profiler</span><span style="font-size:16px;">）比很多人意识到的还要重要</span>
	</p>
	<p class="MsoNormal">
		<span style="font-size:16px;">Python </span><span style="font-size:16px;">的性能分析工具一直有个经典权衡：</span>
	</p>
	<p class="MsoNormal">
		<span style="font-size:16px;">要么获得非常精确的分析结果，但需要付出巨大的运行开销</span>
	</p>
	<p class="MsoNormal">
		<span style="font-size:16px;">要么获得轻量级监控，但细节会少很多</span>
	</p>
	<p class="MsoNormal">
		<span style="font-size:16px;">cProfile </span><span style="font-size:16px;">会追踪所有东西，而这也意味着会显著拖慢程序运行。</span>
	</p>
	<p class="MsoNormal">
		<span style="font-size:16px;">Python 3.15 </span><span style="font-size:16px;">增加了一个</span><span style="font-size:16px;">“</span><span style="font-size:16px;">统计采样式（</span><span style="font-size:16px;">statistical sampling</span><span style="font-size:16px;">）</span><span style="font-size:16px;">”</span><span style="font-size:16px;">分析器。</span>
	</p>
	<p class="MsoNormal">
		<span style="font-size:16px;">这其实更适合偏生产环境的性能分析。</span>
	</p>
	<p class="MsoNormal">
		<span style="font-size:16px;">它不再追踪每一次函数调用，而是周期性地对程序执行状态进行采样，然后估算时间到底花在了哪里。</span>
	</p>
	<p class="MsoNormal">
		<span style="font-size:16px;">精度没那么绝对，但代价低得多，而且通常已经</span><span style="font-size:16px;">“</span><span style="font-size:16px;">够用了</span><span style="font-size:16px;">”</span><span style="font-size:16px;">。</span>
	</p>
	<p class="MsoNormal">
		<span style="font-size:16px;">说实话，很多现代性能分析工具本来就是这么工作的，只是</span><span style="font-size:16px;"> Python </span><span style="font-size:16px;">在这方面显得有点落后。</span>
	</p>
	<p class="MsoNormal">
		<span style="font-size:16px;">当然，这并不意味着确定性分析器（</span><span style="font-size:16px;">deterministic profiler</span><span style="font-size:16px;">）会消失。在某些调试场景，它们依然非常重要。</span>
	</p>
	<p class="MsoNormal">
		<span style="font-size:16px;">但对大多数常规优化工作来说，采样式</span><span style="font-size:16px;"> profiler </span><span style="font-size:16px;">才是更现实的选择。</span>
	</p>
	<p class="MsoNormal">
		<span style="font-size:16px;">尤其是开发者本来就不愿意做</span><span style="font-size:16px;"> profiling——</span><span style="font-size:16px;">因为 </span><span style="font-size:16px;">profiling </span><span style="font-size:16px;">本身会改变程序运行行为。</span>
	</p>
	<p class="MsoNormal">
		<span style="font-size:16px;">6 </span><span style="font-size:16px;">错误信息终于变得没那么糟糕了</span>
	</p>
	<p class="MsoNormal">
		<span style="font-size:16px;">过去发布的几个版本，</span><span style="font-size:16px;">Python </span><span style="font-size:16px;">错误提示已经进步了很多。</span>
	</p>
	<p class="MsoNormal">
		<span style="font-size:16px;">这听起来像小事，直到你回头看看老版本</span><span style="font-size:16px;"> Python </span><span style="font-size:16px;">的报错</span><span style="font-size:16px;">——</span><span style="font-size:16px;">那时候的错误信息就像是在对你耸肩：</span><span style="font-size:16px;">“Ops</span><span style="font-size:16px;">，出错了，自己想办法吧。</span><span style="font-size:16px;">”</span>
	</p>
	<p class="MsoNormal">
		<span style="font-size:16px;">Python 3.15 </span><span style="font-size:16px;">进一步改进了错误建议功能。</span>
	</p>
	<p class="MsoNormal">
		<span style="font-size:16px;">有个挺搞笑的例子：</span>
	</p>
	<p class="MsoNormal">
		<span style="font-size:16px;">my_list.push(1)</span>
	</p>
	<p class="MsoNormal">
		<span style="font-size:16px;">现在</span><span style="font-size:16px;"> Python </span><span style="font-size:16px;">会意识到，你大概率是</span><span style="font-size:16px;">“JavaScript </span><span style="font-size:16px;">脑子还没切换过来</span><span style="font-size:16px;">”</span><span style="font-size:16px;">，然后建议使用：</span>
	</p>
	<p class="MsoNormal">
		<span style="font-size:16px;">append()</span>
	</p>
	<p class="MsoNormal">
		<span style="font-size:16px;">这其实非常有用。</span>
	</p>
	<p class="MsoNormal">
		<span style="font-size:16px;">说到底，现代开发本来就经常在不同语言之间来回切换，所以这种错误完全正常。</span>
	</p>
	<p class="MsoNormal">
		<span style="font-size:16px;">而且，属性名建议（</span><span style="font-size:16px;">attribute suggestions</span><span style="font-size:16px;">）整体也变得更聪明了。</span>
	</p>
	<p class="MsoNormal">
		<span style="font-size:16px;">这不是什么颠覆性改进，但开发体验这种东西，本来就是一点一点累积起来的。</span>
	</p>
	<p class="MsoNormal">
		<span style="font-size:16px;">很多人低估了那些</span><span style="font-size:16px;">“</span><span style="font-size:16px;">愚蠢的调试摩擦</span><span style="font-size:16px;">”</span><span style="font-size:16px;">到底会浪费多少精力。</span>
	</p>
	<p class="MsoNormal">
		<span style="font-size:16px;">7 </span><span style="font-size:16px;">推导式（</span><span style="font-size:16px;">comprehension</span><span style="font-size:16px;">）解包功能，看起来是个小改动，其实对可读性影响很大</span>
	</p>
	<p class="MsoNormal">
		<span style="font-size:16px;">这个特性大概会把人分成两派：</span>
	</p>
	<p class="MsoNormal">
		<span style="font-size:16px;">“</span><span style="font-size:16px;">终于来了。</span><span style="font-size:16px;">”</span>
	</p>
	<p class="MsoNormal">
		<span style="font-size:16px;">以及：</span>
	</p>
	<p class="MsoNormal">
		<span style="font-size:16px;">“</span><span style="font-size:16px;">这会让推导式彻底变成天书。</span><span style="font-size:16px;">”</span>
	</p>
	<p class="MsoNormal">
		<span style="font-size:16px;">说实话，这两种反应都挺合理。</span>
	</p>
	<p class="MsoNormal">
		<span style="font-size:16px;">以前，在推导式里展开嵌套可迭代对象，通常得这么写：</span>
	</p>
	<p class="MsoNormal">
		<span style="font-size:16px;">[a for b in x for a in b]</span>
	</p>
	<p class="MsoNormal">
		<span style="font-size:16px;">技术上当然没问题，但也谈不上好读。</span>
	</p>
	<p class="MsoNormal">
		<span style="font-size:16px;">现在可以写成：</span>
	</p>
	<p class="MsoNormal">
		<span style="font-size:16px;">[*a for a in x]</span>
	</p>
	<p class="MsoNormal">
		<span style="font-size:16px;">扫一眼就更容易理解。</span>
	</p>
	<p class="MsoNormal">
		<span style="font-size:16px;">字典解包现在也支持：</span>
	</p>
	<p class="MsoNormal">
		<span style="font-size:16px;">{**d for d in dicts}</span>
	</p>
	<p class="MsoNormal">
		<span style="font-size:16px;">这个功能本身很直白。</span>
	</p>
	<p class="MsoNormal">
		<span style="font-size:16px;">真正的问题在于，</span><span style="font-size:16px;">Python </span><span style="font-size:16px;">推导式本来就很容易在</span><span style="font-size:16px;">“</span><span style="font-size:16px;">过度聪明</span><span style="font-size:16px;">”</span><span style="font-size:16px;">之后，逐渐演变成某种编程竞赛谜题。</span>
	</p>
	<p class="MsoNormal">
		<span style="font-size:16px;">所以这大概属于那种：适度使用时非常棒，但落到那些把</span><span style="font-size:16px;">“</span><span style="font-size:16px;">单行代码</span><span style="font-size:16px;">”</span><span style="font-size:16px;">当成人格特质的开发者手里，就会变得非常可怕。</span>
	</p>
	<p class="MsoNormal">
		<span style="font-size:16px;">8 </span><span style="font-size:16px;">垃圾回收器（</span><span style="font-size:16px;">GC</span><span style="font-size:16px;">）的回滚，其实是个好信号</span>
	</p>
	<p class="MsoNormal">
		<span style="font-size:16px;">从</span><span style="font-size:16px;">“</span><span style="font-size:16px;">理念</span><span style="font-size:16px;">”</span><span style="font-size:16px;">层面说，这可能是这次发布最有意思的一部分。</span>
	</p>
	<p class="MsoNormal">
		<span style="font-size:16px;">Python 3.14 </span><span style="font-size:16px;">曾引入一种</span><span style="font-size:16px;">“</span><span style="font-size:16px;">增量式垃圾回收器（</span><span style="font-size:16px;">incremental garbage collector</span><span style="font-size:16px;">）</span><span style="font-size:16px;">”</span><span style="font-size:16px;">，目标是减少程序停顿时间（</span><span style="font-size:16px;">pause times</span><span style="font-size:16px;">）。</span>
	</p>
	<p class="MsoNormal">
		<span style="font-size:16px;">这个目标本身很合理。</span>
	</p>
	<p class="MsoNormal">
		<span style="font-size:16px;">但随后，用户开始报告内存占用增加的问题，有时候甚至增加得相当夸张。</span>
	</p>
	<p class="MsoNormal">
		<span style="font-size:16px;">于是</span><span style="font-size:16px;"> Python 3.15 </span><span style="font-size:16px;">把这个改动回滚了。</span>
	</p>
	<p class="MsoNormal">
		<span style="font-size:16px;">说实话，这完全没问题。</span>
	</p>
	<p class="MsoNormal">
		<span style="font-size:16px;">一个会导致内存膨胀的运行时优化，并不会因为实现起来很复杂，就值得保留下来。</span>
	</p>
	<p class="MsoNormal">
		<span style="font-size:16px;">有些技术生态有种倾向：只要是</span><span style="font-size:16px;">“</span><span style="font-size:16px;">性能实验</span><span style="font-size:16px;">”</span><span style="font-size:16px;">，无论效果如何，都要拼命维护到底，因为回滚看起来像是在承认失败。</span>
	</p>
	<p class="MsoNormal">
		<span style="font-size:16px;">Python </span><span style="font-size:16px;">选择撤回这个改动，而不是假装用户</span><span style="font-size:16px;">“</span><span style="font-size:16px;">想多了</span><span style="font-size:16px;">”</span><span style="font-size:16px;">，其实是更健康的做法。</span>
	</p>
	<p class="MsoNormal">
		<span style="font-size:16px;">所以旧的</span><span style="font-size:16px;">“</span><span style="font-size:16px;">分代垃圾回收器（</span><span style="font-size:16px;">generational garbage collector</span><span style="font-size:16px;">）</span><span style="font-size:16px;">”</span><span style="font-size:16px;">又回来了。</span>
	</p>
	<p class="MsoNormal">
		<span style="font-size:16px;">至于增量</span><span style="font-size:16px;"> GC</span><span style="font-size:16px;">，以后可能还会在进一步完善后重新出现。</span>
	</p>
	<p class="MsoNormal">
		<span style="font-size:16px;">这才是正确的结果。</span>
	</p>
	<p class="MsoNormal">
		<span style="font-size:16px;">9 </span><span style="font-size:16px;">类型系统持续扩展，让 </span><span style="font-size:16px;">Python </span><span style="font-size:16px;">的</span><span style="font-size:16px;">“</span><span style="font-size:16px;">分裂人格</span><span style="font-size:16px;">”</span><span style="font-size:16px;">越来越明显</span>
	</p>
	<p class="MsoNormal">
		<span style="font-size:16px;">Python </span><span style="font-size:16px;">的类型标注（</span><span style="font-size:16px;">typing</span><span style="font-size:16px;">）一直在演变成一个平行宇宙。</span>
	</p>
	<p class="MsoNormal">
		<span style="font-size:16px;">有些开发者很喜欢它，有些只是勉强接受，还有一些人仍然把类型注解当作</span><span style="font-size:16px;">“</span><span style="font-size:16px;">装饰性的注释</span><span style="font-size:16px;">”</span><span style="font-size:16px;">。</span>
	</p>
	<p class="MsoNormal">
		<span style="font-size:16px;">Python 3.15 </span><span style="font-size:16px;">在 </span><span style="font-size:16px;">TypedDict </span><span style="font-size:16px;">上增加了更多控制选项，比如：</span>
	</p>
	<p class="MsoNormal">
		<span style="font-size:16px;">closed</span>
	</p>
	<p class="MsoNormal">
		<span style="font-size:16px;">extra_items</span>
	</p>
	<p class="MsoNormal">
		<span style="font-size:16px;">这些让字典结构的约束更严格，也更具表达力。</span>
	</p>
	<p class="MsoNormal">
		<span style="font-size:16px;">此外还有</span><span style="font-size:16px;"> TypeForm</span><span style="font-size:16px;">，用于更好地表示</span><span style="font-size:16px;">“</span><span style="font-size:16px;">已求值的类型表达式</span><span style="font-size:16px;">”</span><span style="font-size:16px;">。</span>
	</p>
	<p class="MsoNormal">
		<span style="font-size:16px;">有用吗？有。</span>
	</p>
	<p class="MsoNormal">
		<span style="font-size:16px;">让人兴奋吗？这取决于你有多少时间在和静态分析工具搏斗。</span>
	</p>
	<p class="MsoNormal">
		<span style="font-size:16px;">现实情况是，</span><span style="font-size:16px;">Python </span><span style="font-size:16px;">现在同时服务于两种非常不同的用户群：</span>
	</p>
	<p class="MsoNormal">
		<span style="font-size:16px;">一类是想要灵活脚本能力的人</span>
	</p>
	<p class="MsoNormal">
		<span style="font-size:16px;">另一类是构建大规模类型化系统的开发者</span>
	</p>
	<p class="MsoNormal">
		<span style="font-size:16px;">有时候语言能很好地处理这种张力，有时候则更像是两种语言共享同一套语法。</span>
	</p>
	<p class="MsoNormal">
		<span style="font-size:16px;">10 Python 3.15 </span><span style="font-size:16px;">给人的感觉是不同寻常地务实</span>
	</p>
	<p class="MsoNormal">
		<span style="font-size:16px;">这大概是最核心的一点。</span>
	</p>
	<p class="MsoNormal">
		<span style="font-size:16px;">很多版本都包含大量令人印象深刻的底层工程，但普通开发者几乎感知不到。</span>
	</p>
	<p class="MsoNormal">
		<span style="font-size:16px;">而</span><span style="font-size:16px;"> Python 3.15 </span><span style="font-size:16px;">包含的几项改动，确实直接影响到：</span>
	</p>
	<p class="MsoNormal">
		<span style="font-size:16px;">启动性能</span>
	</p>
	<p class="MsoNormal">
		<span style="font-size:16px;">性能分析（</span><span style="font-size:16px;">profiling</span><span style="font-size:16px;">）</span>
	</p>
	<p class="MsoNormal">
		<span style="font-size:16px;">运行时速度</span>
	</p>
	<p class="MsoNormal">
		<span style="font-size:16px;">错误调试体验</span>
	</p>
	<p class="MsoNormal">
		<span style="font-size:16px;">数据建模</span>
	</p>
	<p class="MsoNormal">
		<span style="font-size:16px;">代码可读性</span>
	</p>
	<p class="MsoNormal">
		<span style="font-size:16px;">并不是每个功能都同样重要。有些很小众，有些甚至会在</span><span style="font-size:16px;"> Reddit </span><span style="font-size:16px;">上引发持续半年的争论。</span>
	</p>
	<p class="MsoNormal">
		<span style="font-size:16px;">但整体来看，这个版本更像是基于真实开发行为、而不是语言理论来设计的：</span>
	</p>
	<p class="MsoNormal">
		<span style="font-size:16px;">人们抱怨启动速度慢，</span><span style="font-size:16px;">Python </span><span style="font-size:16px;">就加入了延迟导入（</span><span style="font-size:16px;">lazy imports</span><span style="font-size:16px;">）</span>
	</p>
	<p class="MsoNormal">
		<span style="font-size:16px;">人们想要不可变字典，</span><span style="font-size:16px;">Python </span><span style="font-size:16px;">就提供了 </span><span style="font-size:16px;">frozendict</span>
	</p>
	<p class="MsoNormal">
		<span style="font-size:16px;">用户反馈</span><span style="font-size:16px;"> GC </span><span style="font-size:16px;">有内存问题，</span><span style="font-size:16px;">Python </span><span style="font-size:16px;">就回滚了相关改动</span>
	</p>
	<p class="MsoNormal">
		<span style="font-size:16px;">这种反馈闭环可能是最让人安心的部分。</span>
	</p>
	<p class="MsoNormal">
		<span style="font-size:16px;">我仍然认为，一些</span><span style="font-size:16px;"> Python </span><span style="font-size:16px;">应用正在变得过度工程化。尤其是 </span><span style="font-size:16px;">AI </span><span style="font-size:16px;">生态，经常在打印一个 </span><span style="font-size:16px;">token </span><span style="font-size:16px;">之前，就先把全地球的包导入一遍。</span>
	</p>
	<p class="MsoNormal">
		<span style="font-size:16px;">至少</span><span style="font-size:16px;"> CPython </span><span style="font-size:16px;">本身，似乎越来越专注于解决实际痛点，而不是假装</span><span style="font-size:16px;">“</span><span style="font-size:16px;">开发体验</span><span style="font-size:16px;">”</span><span style="font-size:16px;">和</span><span style="font-size:16px;">“</span><span style="font-size:16px;">运行时行为</span><span style="font-size:16px;">”</span><span style="font-size:16px;">是两件互不相关的事情。</span>
	</p>
	<p class="MsoNormal">
		<span style="font-size:16px;">这些改动在</span><span style="font-size:16px;"> 3.15 </span><span style="font-size:16px;">完全发布后、进入真实项目会变成什么样，还有待观察。</span>
	</p>
	<p class="MsoNormal">
		<span style="font-size:16px;">有些特性会悄悄变成常态，有些会被迅速滥用。</span>
	</p>
	<p class="MsoNormal">
		<span style="font-size:16px;">有些可能在未来版本中移除。</span>
	</p>
	<p class="MsoNormal">
		<span style="font-size:16px;">这也很</span><span style="font-size:16px;"> Python</span><span style="font-size:16px;">。</span>
	</p>
	<p class="MsoNormal">
		<span style="font-size:16px;"><span style="color:#454545;font-size:16px;background-color:#FFFFFF;font-family:Verdana, &quot;">以上就是“</span><span style="color:#454545;font-size:16px;background-color:#FFFFFF;font-family:Verdana, &quot;">Python 3.15 新变化惊喜不断！</span><span style="color:#454545;font-size:16px;background-color:#FFFFFF;font-family:Verdana, &quot;">”</span><span style="color:#454545;font-size:16px;background-color:#FFFFFF;font-family:Verdana, &quot;">的详细内容，想要了解更多</span><a href="http://www.phpxs.com/" target="_blank">Python</a><a href="http://www.phpxs.com/" target="_blank">教程</a><span style="color:#454545;font-size:16px;background-color:#FFFFFF;font-family:Verdana, &quot;">欢迎持续关注</span><a href="http://www.phpxs.com/" target="_blank">编程</a><span style="color:#454545;font-size:16px;background-color:#FFFFFF;font-family:Verdana, &quot;">学习网。</span>&nbsp;</span>
	</p>
</p>]]></description>
<pubDate>2026-05-30</pubDate>
</item>
<item>
<title><![CDATA[Python 的 range 为什么是左闭右开的？]]></title>
<link>http://www.phpxs.com/post/14191/</link>
<description><![CDATA[<p>
	<br />
</p>
<p class="MsoNormal">
	<img src="http://www.phpxs.com/uploads/202605/30/aef9202d06873a4fc85591a955e4d0df.png" alt="" />
</p>
<p class="MsoNormal">
	<span style="font-size:16px;">很多人第一次接触&nbsp;Python 里的 range 时，都会有一个小疑问。比如：</span>
</p>
<p class="MsoNormal">
	<span style="font-size:16px;">range(1,8)</span>
</p>
<p class="MsoNormal">
	<span style="font-size:16px;">它实际表示的是：</span>
</p>
<p class="MsoNormal">
	<span style="font-size:16px;">1 ≤ x &lt; 8</span>
</p>
<p class="MsoNormal">
	<span style="font-size:16px;">也就是 [1, 8)。</span>
</p>
<p class="MsoNormal">
	<span style="font-size:16px;">这时你会好奇，既然已经包含了左边的 1，为什么不顺手把右边的 8 也包含进去？做成 [1, 8] 看起来似乎更“完整”。不少人会下意识觉得，这可能只是语言设计时的一种约定，没有太多讲究。但如果稍微留意一下就会发现，不只是 Python，Java、C++、JavaScript 里的类似语法，全都是这么干的。这就奇怪了。总不能全世界的程序员都同时脑子抽了吧？</span>
</p>
<p class="MsoNormal">
	<span style="font-size:16px;">所以更合理的问题应该是：这种左闭右开的形式，到底解决了什么问题？能让所有人都不约而同地选择它？</span>
</p>
<p class="MsoNormal">
	<span style="font-size:16px;">算一个数就能让你少一个 Bug</span>
</p>
<p class="MsoNormal">
	<span style="font-size:16px;">先看最直观一点，就是区间长度的计算不用动脑。</span>
</p>
<p class="MsoNormal">
	<span style="font-size:16px;">在左闭右开的区间 [start, end) 中，长度可以直接写成：</span>
</p>
<p class="MsoNormal">
	<span style="font-size:16px;">end - start</span>
</p>
<p class="MsoNormal">
	<span style="font-size:16px;">比如：</span>
</p>
<p class="MsoNormal">
	<span style="font-size:16px;">[1, 8) → 8 - 1 = 7</span>
</p>
<p class="MsoNormal">
	<span style="font-size:16px;">这和我们实际数出来的元素个数是一致的：1，2，3，4，5，6，7，一共 7 个。</span>
</p>
<p class="MsoNormal">
	<span style="font-size:16px;">但如果你用的是闭区间的 [1, 8]，算长度就得这样写：</span>
</p>
<p class="MsoNormal">
	<span style="font-size:16px;">长度 = end - start + 1</span>
</p>
<p class="MsoNormal">
	<span style="font-size:16px;">这里多出来的 +1&nbsp;看起来只是一个小细节，但在实际开发中，它往往意味着额外的思考成本。尤其是在循环、统计、区间处理等场景里，这个 +1 很容易被忘掉，或者加错位置。</span>
</p>
<p class="MsoNormal">
	<span style="font-size:16px;">而这类问题有一个专门的名字：off-by-one（差一错误）。你可以理解为，你以为你数对了，但结果永远差 1。</span>
</p>
<p class="MsoNormal">
	<span style="font-size:16px;">举个简单例子：</span>
</p>
<p class="MsoNormal">
	<span style="font-size:16px;">你想用 range 循环 10 次。如果你是闭区间的思维，可能会写：</span>
</p>
<p class="MsoNormal">
	<span style="font-size:16px;"># 假设 range 是闭区间，想循环 10 次for&nbsp;i&nbsp;in&nbsp;range(0,&nbsp;10): &nbsp;&nbsp;# 闭区间 [0,10] → 0 到 10 一共 11 次&nbsp; &nbsp;&nbsp;print(i)</span>
</p>
<p class="MsoNormal">
	<span style="font-size:16px;">这样就多了一次。而左闭右开的设计，让 range(0, 10) 刚好是 0～9，一共 10 次。你写 end - start，就是元素个数。不需要任何 +1 或 -1 的修正。这个细节小到你不会注意，但大到能让你的代码少掉一大类边界错误。</span>
</p>
<p class="MsoNormal">
	<span style="font-size:16px;">分段处理时，不会多也不会少</span>
</p>
<p class="MsoNormal">
	<span style="font-size:16px;">再看一个比较稍微隐蔽但非常重要的场景：区间的拼接。</span>
</p>
<p class="MsoNormal">
	<span style="font-size:16px;">很多时候，我们需要把一段数据拆成小区间进行处理，比如分页、批处理、分片计算等。如果采用左闭右开区间，可以这样划分：</span>
</p>
<p class="MsoNormal">
	<span style="font-size:16px;">[a, b) 和 [b, c)</span>
</p>
<p class="MsoNormal">
	<span style="font-size:16px;">这两个区间拼在一起，刚好是：</span>
</p>
<p class="MsoNormal">
	<span style="font-size:16px;">[a, c)</span>
</p>
<p class="MsoNormal">
	<span style="font-size:16px;">不会重复，也不会遗漏。用代码类比一下：</span>
</p>
<p class="MsoNormal">
	<span style="font-size:16px;">part1&nbsp;=list(range(0,5))# [0,5) → 0,1,2,3,4</span><br />
<span style="font-size:16px;">part2&nbsp;=list(range(5,10))# [5,10) → 5,6,7,8,9&nbsp;</span><br />
<span style="font-size:16px;">combined&nbsp;=&nbsp;part1&nbsp;+&nbsp;part2</span><br />
<span style="font-size:16px;"># 正好是 0~9，没有重复也没有缺失</span>
</p>
<p class="MsoNormal">
	<span style="font-size:16px;">这样的好处就是只要相邻区间共享边界，就能无缝拼接。对比其他设计就会发现问题：</span>
</p>
<p class="MsoNormal">
	<span style="font-size:16px;">如果是闭区间 [0,5] 和 [5,10]，数字 5 会重复</span>
</p>
<p class="MsoNormal">
	<span style="font-size:16px;">如果人为调整为 [0,4] 和 [5,10]，又容易在边界上出错</span>
</p>
<p class="MsoNormal">
	<span style="font-size:16px;">左闭右开的关键在于：边界只属于一侧。这样区间之间就可以无缝衔接，而不需要额外处理。这种设计保证了区间之间可以稳定组合。</span>
</p>
<p class="MsoNormal">
	<span style="font-size:16px;">与索引系统保持一致（实际使用中的关键）</span>
</p>
<p class="MsoNormal">
	<span style="font-size:16px;">再回到最常见的代码场景：遍历数组。</span>
</p>
<p class="MsoNormal">
	<span style="font-size:16px;">arr&nbsp;=[10,20,30,40]</span><br />
<span style="font-size:16px;">for&nbsp;i&nbsp;inrange(0,len(arr)):</span><br />
<span style="font-size:16px;">print(arr[i])</span>
</p>
<p class="MsoNormal">
	<span style="font-size:16px;">这里其实隐藏着一个很“顺”的对应关系：</span>
</p>
<p class="MsoNormal">
	<span style="font-size:16px;">数组索引范围是：0 ~ len(arr) - 1</span>
</p>
<p class="MsoNormal">
	<span style="font-size:16px;">range(0, len(arr)) 表示的是 [0, len(arr))</span>
</p>
<p class="MsoNormal">
	<span style="font-size:16px;">也就是说，range 刚好覆盖了所有合法索引。关键点在于：</span>
</p>
<p class="MsoNormal">
	<span style="font-size:16px;">len(arr) 表示的是“边界”，而不是“最后一个元素的位置”。如果 range 是闭区间，那么写成：</span>
</p>
<p class="MsoNormal">
	<span style="font-size:16px;">range(0,len(arr))</span>
</p>
<p class="MsoNormal">
	<span style="font-size:16px;">就会访问到：</span>
</p>
<p class="MsoNormal">
	<span style="font-size:16px;">arr[len(arr)]# 越界</span>
</p>
<p class="MsoNormal">
	<span style="font-size:16px;">这在设计上是不可接受的。正因为使用了左闭右开：起点是第一个索引，终点是“边界”， 不需要额外调整。</span>
</p>
<p class="MsoNormal">
	<span style="font-size:16px;">整个逻辑保持了一致性。可以理解为，range 不是独立设计的，它是跟着数组索引的规则走的。索引怎么来，range 就怎么来。回到最开始的问题：为什么 range(1, 8) 不包含 8？不是因为设计者心情不好，也不是为了数学上的优雅。而是因为它解决了三类你每天都在面对的麻烦：</span>
</p>
<p class="MsoNormal">
	<br />
</p>
<p>
	<br />
</p>
<p>
	<img src="http://www.phpxs.com/uploads/202605/30/3c7261d97c2de30de8528bb88c35248e.png" alt="" />
</p>
<p>
	<span style="font-size:16px;">这三件事单独看都不大，但组合在一起，帮你消灭了一整类边界错误。所以你可以记住这句话：左闭右开减少的不是一个数，而是一类问题。</span>
</p>
<p>
	<span style="font-size:16px;"></span><span style="color:#454545;font-size:16px;background-color:#FFFFFF;font-family:Verdana, &quot;">以上就是“</span><span style="color:#454545;font-size:16px;background-color:#FFFFFF;font-family:Verdana, &quot;">Python 的 range 为什么是左闭右开的？</span><span style="color:#454545;font-size:16px;background-color:#FFFFFF;font-family:Verdana, &quot;">”</span><span style="color:#454545;font-size:16px;background-color:#FFFFFF;font-family:Verdana, &quot;">的详细内容，想要了解更多</span><a href="http://www.phpxs.com/" target="_blank"><span style="font-size:16px;">Python</span></a><a href="http://www.phpxs.com/" target="_blank"><span style="font-size:16px;">教程</span></a><span style="color:#454545;font-size:16px;background-color:#FFFFFF;font-family:Verdana, &quot;">欢迎持续关注</span><a href="http://www.phpxs.com/" target="_blank"><span style="font-size:16px;">编程</span></a><span style="color:#454545;font-size:16px;background-color:#FFFFFF;font-family:Verdana, &quot;">学习网。</span><span style="font-size:16px;"></span>
</p>]]></description>
<pubDate>2026-05-30</pubDate>
</item>
<item>
<title><![CDATA[谷歌浏览器正式支持垂直标签页 用户升级到最新版即可切换]]></title>
<link>http://www.phpxs.com/post/14190/</link>
<description><![CDATA[<p>
	<img src="http://www.phpxs.com/uploads/202605/18/a71a482dea50f1a3d65e57f6941c1c7a.png" alt="" />
</p>
<p>
	<p>
		<span style="font-size:16px;">在其他浏览器都已经支持垂直标签页的情况下，谷歌浏览器并没有为这个功能提供积极支持，直到最近谷歌才决定响应用户需求开发垂直标签页，经过测试后现在垂直标签页已经抵达 Chrome Stable 版。</span>
	</p>
	<p>
		<span style="font-size:16px;">现在所有用户将谷歌浏览器升级到最新版后都可以切换垂直标签页，切换方法也非常简单：转到设置、外观、标签页位置，将标签页位置设置为纵向或侧边栏即可。</span>
	</p>
	<p>
		<span style="font-size:16px;">当然如果用户经常切换的话也不需要每次都进入设置，只需要点击谷歌浏览器顶部或者侧边窗口部分按右键，然后选择水平显示或将标签栏放在顶部即可。</span>
	</p>
	<p>
		<span style="font-size:16px;">翻译方面的问题：</span>
	</p>
	<p>
		<span style="font-size:16px;">目前谷歌浏览器稳定版和测试版还在调整垂直标签页的中文翻译说明，例如横向 / 顶部 (默认顶部标签栏)、纵向 / 侧边 (垂直标签栏)。调整期间，新旧翻译有可能是将标签页移动到顶部或者横向显示，这类翻译后续都会按照测试版中的最新简体中文翻译为主，功能方面没有任何区别。</span>
	</p>
	<p>
		<span style="font-size:16px;">还可以折叠侧边栏：</span>
	</p>
	<p>
		<span style="font-size:16px;">对于不需要显示网页标题的用户，还可以在切换到纵向显示标签页后，点击菜单栏的折叠按钮将整个侧边栏折叠起来，这样所有页面都只显示网站图标而不显示文字标题。</span>
	</p>
	<p>
		<span style="font-size:16px;">具体用户升级到谷歌浏览器最新版后可以自行体验垂直标签页提供的这些新功能，这段时间使用垂直标签页感觉还是非常不错的，在开启较多网页的情况下比放在顶部看起来更舒心。</span>
	</p>
<span style="font-size:16px;"><span style="color:#454545;font-size:16px;background-color:#FFFFFF;font-family:Verdana, &quot;">以上就是“</span><span style="color:#454545;font-size:16px;background-color:#FFFFFF;font-family:Verdana, &quot;">谷歌浏览器正式支持垂直标签页 用户升级到最新版即可切换</span><span style="color:#454545;font-size:16px;background-color:#FFFFFF;font-family:Verdana, &quot;">”</span><span style="color:#454545;font-size:16px;background-color:#FFFFFF;font-family:Verdana, &quot;">的详细内容，想要了解更多</span><a href="http://www.phpxs.com/" target="_blank">Python</a><a href="http://www.phpxs.com/" target="_blank">教程</a><span style="color:#454545;font-size:16px;background-color:#FFFFFF;font-family:Verdana, &quot;">欢迎持续关注</span><a href="http://www.phpxs.com/" target="_blank">编程</a><span style="color:#454545;font-size:16px;background-color:#FFFFFF;font-family:Verdana, &quot;">学习网。</span></span>
</p>]]></description>
<pubDate>2026-05-18</pubDate>
</item>
<item>
<title><![CDATA[连库克都没想到：MacBook Neo爆火给苹果造成巨大困境 没库存了]]></title>
<link>http://www.phpxs.com/post/14189/</link>
<description><![CDATA[<p>
	<img src="http://www.phpxs.com/uploads/202605/18/4cc7734145472dd9e40ac72db39e8c53.png" alt="" />
</p>
<p>
	<p>
		<span style="font-size:16px;">此前苹果推出的搭载 A 系列芯片的 MacBook Neo 遭到大量网友嘲讽，很多网友嘲讽该机型是电子垃圾，因为从硬件配置上说 Neo 机型确实比较差，所以苹果的定位也主要是学生用户和轻度办公使用。</span>
	</p>
	<p>
		<span style="font-size:16px;">问题在于 MacBook Neo 提供极其优秀的价格</span><span style="font-size:16px;">，叠加国补和教育优惠后仅需 3000 元即可拿下，因此实际上 MacBook Neo 销售非常火爆，这让苹果甚至都没有足够的物料。</span>
	</p>
	<p>
		<span style="font-size:16px;">经常有网友称蒂姆库克是清库存大师，只是这波爆火可能连库克都没想到，苹果准备的 5 核心版 A18 Pro 芯片约有 500 万～600 万颗，库存消耗后就准备停产 MacBook Neo。</span>
	</p>
	<p>
		<span style="font-size:16px;">但现在市场需求太高，苹果也没法现在立即停产机型，所以对苹果而言就是要额外找台积电生产 A18 Pro 芯片，台积电 N3E 生产线已经满负荷运转，因此苹果可能要支付更高的成本才能重启 A18 Pro 芯片的生产，这会降低苹果的利润率。</span>
	</p>
	<p>
		<span style="font-size:16px;">前彭博社编辑蒂姆库尔潘表示，苹果也可以将原本计划用于其他设备的芯片产能重新分配，但即便如此实际生产 A18 Pro 芯片的成本仍然还会比以前要高，所以无论如何苹果的成本都在增加。</span>
	</p>
	<p>
		<span style="font-size:16px;">当然苹果还有个选择是停产 599 美元基础版，该版本配备 256GB 存储空间，只销售配备 512GB 售价 699 美元的版本，这样苹果可以获得更高的利润来抵消芯片成本。</span>
	</p>
	<p>
		<span style="font-size:16px;">不过 MacBook Neo 主打的就是物美价廉，所以苹果可能也不太可能停产基础版，毕竟只要卖出去苹果总能通过</span><span style="font-size:16px;">&nbsp;</span><span style="font-size:16px;">软件</span><span style="font-size:16px;">订阅和其他服务将增加的成本赚回来，这对苹果来说是绝对不亏的。</span>
	</p>
	<p>
		<span style="font-size:16px;">另外&nbsp;</span><span style="font-size:16px;">&nbsp;</span><span style="font-size:16px;">MacBook</span><span style="font-size:16px;">&nbsp;Neo 初代产品销售如此火爆，苹果明年可能会推出第二代 MacBook Neo，到时候</span><span style="font-size:16px;">&nbsp;</span><span style="font-size:16px;">芯片</span><span style="font-size:16px;">估计会换成 A19 Pro 并将内存加到 12GB，现在的 8GB 内存确实太小。</span>
	</p>
<span style="font-size:16px;"><span style="color:#454545;font-size:16px;background-color:#FFFFFF;font-family:Verdana, &quot;">以上就是“</span><span style="color:#454545;font-size:16px;background-color:#FFFFFF;font-family:Verdana, &quot;">连库克都没想到：MacBook Neo爆火给苹果造成巨大困境 没库存了</span><span style="color:#454545;font-size:16px;background-color:#FFFFFF;font-family:Verdana, &quot;">”</span><span style="color:#454545;font-size:16px;background-color:#FFFFFF;font-family:Verdana, &quot;">的详细内容，想要了解更多</span><a href="http://www.phpxs.com/" target="_blank">Python</a><a href="http://www.phpxs.com/" target="_blank">教程</a><span style="color:#454545;font-size:16px;background-color:#FFFFFF;font-family:Verdana, &quot;">欢迎持续关注</span><a href="http://www.phpxs.com/" target="_blank">编程</a><span style="color:#454545;font-size:16px;background-color:#FFFFFF;font-family:Verdana, &quot;">学习网。</span></span>
</p>
<p>
	<br />
</p>]]></description>
<pubDate>2026-05-18</pubDate>
</item>
<item>
<title><![CDATA[DelphiFMX4Python：用Python也能轻松构建炫酷跨平台GUI应用，跨平台支持Android6！]]></title>
<link>http://www.phpxs.com/post/14188/</link>
<description><![CDATA[<p>
	<img src="http://www.phpxs.com/uploads/202605/18/ad941d7696d0465e01047970d7fa13f2.png" alt="" />
</p>
<p>
	<p class="MsoNormal">
		<span style="font-size:16px;">Python</span><span style="font-size:16px;">以其简洁易懂的语法和丰富的库而闻名，但在</span><span style="font-size:16px;">GUI</span><span style="font-size:16px;">开发领域，一直以来都面临着一些挑战。开发者常常需要在不同的平台上使用不同的</span><span style="font-size:16px;">GUI</span><span style="font-size:16px;">框架，代码难以复用，开发效率低下。现在，这一切都将改变！</span><span style="font-size:16px;">DelphiFMX4Python</span><span style="font-size:16px;">横空出世，为</span><span style="font-size:16px;">Python</span><span style="font-size:16px;">开发者带来了一场</span><span style="font-size:16px;">GUI</span><span style="font-size:16px;">开发的革命！</span>
	</p>
	<p class="MsoNormal">
		<span style="font-size:16px;">一、什么是</span><span style="font-size:16px;">DelphiFMX4Python</span><span style="font-size:16px;">？</span>
	</p>
	<p class="MsoNormal">
		<span style="font-size:16px;">DelphiFMX4Python</span><span style="font-size:16px;">是一个原生编译的</span><span style="font-size:16px;">Python</span><span style="font-size:16px;">模块，它利用强大的</span><span style="font-size:16px;">Python4Delphi</span><span style="font-size:16px;">库，将</span><span style="font-size:16px;">Delphi</span><span style="font-size:16px;">的</span><span style="font-size:16px;">FireMonkey</span><span style="font-size:16px;">（</span><span style="font-size:16px;">FMX</span><span style="font-size:16px;">）跨平台</span><span style="font-size:16px;">GUI</span><span style="font-size:16px;">框架赋予了</span><span style="font-size:16px;">Python</span><span style="font-size:16px;">。这意味着，你可以使用</span><span style="font-size:16px;">Python</span><span style="font-size:16px;">编写代码，并利用</span><span style="font-size:16px;">FMX</span><span style="font-size:16px;">框架构建出运行于</span><span style="font-size:16px;">Windows</span><span style="font-size:16px;">、</span><span style="font-size:16px;">macOS</span><span style="font-size:16px;">、</span><span style="font-size:16px;">Linux</span><span style="font-size:16px;">和</span><span style="font-size:16px;">Android</span><span style="font-size:16px;">等多个平台上的原生</span><span style="font-size:16px;">GUI</span><span style="font-size:16px;">应用！再也不用为跨平台兼容性而烦恼了！</span>
	</p>
	<p class="MsoNormal">
		<span style="font-size:16px;">二、</span><span style="font-size:16px;">FireMonkey</span><span style="font-size:16px;">：</span><span style="font-size:16px;">GPU</span><span style="font-size:16px;">加速的跨平台利器</span>
	</p>
	<p class="MsoNormal">
		<span style="font-size:16px;">FMX</span><span style="font-size:16px;">并非默默无闻，它源于</span><span style="font-size:16px;">Embarcadero Delphi</span><span style="font-size:16px;">，是一个成熟且强大的</span><span style="font-size:16px;">GUI</span><span style="font-size:16px;">框架。它充分利用</span><span style="font-size:16px;">GPU</span><span style="font-size:16px;">进行硬件加速渲染，确保应用拥有流畅的运行速度和惊艳的视觉效果。其丰富的样式系统允许你轻松定制应用的</span><span style="font-size:16px;">UI</span><span style="font-size:16px;">风格，打造个性化的用户体验。更重要的是，</span><span style="font-size:16px;">FMX</span><span style="font-size:16px;">具有高度的可扩展性，满足你对</span><span style="font-size:16px;">UI</span><span style="font-size:16px;">设计的各种需求。</span>
	</p>
	<p class="MsoNormal">
		<span style="font-size:16px;">三、告别学习曲线，轻松上手</span>
	</p>
	<p class="MsoNormal">
		<span style="font-size:16px;">你或许会担心，使用</span><span style="font-size:16px;">DelphiFMX4Python</span><span style="font-size:16px;">需要学习</span><span style="font-size:16px;">Delphi</span><span style="font-size:16px;">或</span><span style="font-size:16px;">Object Pascal</span><span style="font-size:16px;">语言。别担心！</span><span style="font-size:16px;">DelphiFMX4Python</span><span style="font-size:16px;">完全独立于</span><span style="font-size:16px;">Delphi</span><span style="font-size:16px;">，你无需具备任何</span><span style="font-size:16px;">Delphi</span><span style="font-size:16px;">或</span><span style="font-size:16px;">Object Pascal</span><span style="font-size:16px;">的经验即可轻松上手。只需掌握</span><span style="font-size:16px;">Python</span><span style="font-size:16px;">基础知识，即可开始你的跨平台</span><span style="font-size:16px;">GUI</span><span style="font-size:16px;">开发之旅！</span>
	</p>
	<p class="MsoNormal">
		<span style="font-size:16px;">四、安装简易，支持广泛</span>
	</p>
	<p class="MsoNormal">
		<span style="font-size:16px;">DelphiFMX4Python</span><span style="font-size:16px;">的安装非常简单，只需要一条</span><span style="font-size:16px;">pip install delphifmx</span><span style="font-size:16px;">命令即可完成。它支持多种平台和</span><span style="font-size:16px;">Python</span><span style="font-size:16px;">版本，覆盖范围广泛：</span>
	</p>
	<p class="MsoNormal">
		<span style="font-size:16px;">支持平台</span><span style="font-size:16px;">:&nbsp;Win32 x86, Win64 x86, Linux64 x86, Android64, macOS64&nbsp;</span><span style="font-size:16px;">和&nbsp;</span><span style="font-size:16px;">macM1</span>
	</p>
	<p class="MsoNormal">
		<span style="font-size:16px;">支持</span><span style="font-size:16px;">Python</span><span style="font-size:16px;">版本</span><span style="font-size:16px;">:</span><span style="font-size:16px;">&nbsp;cp3.8, cp3.9, cp3.10, cp3.11, cp3.12&nbsp;</span><span style="font-size:16px;">和&nbsp;</span><span style="font-size:16px;">cp3.13</span>
	</p>
	<p class="MsoNormal">
		<span style="font-size:16px;">兼容性</span><span style="font-size:16px;">:&nbsp;&nbsp;</span><span style="font-size:16px;">完美支持</span><span style="font-size:16px;">Conda</span><span style="font-size:16px;">和</span><span style="font-size:16px;">Venv</span><span style="font-size:16px;">虚拟环境，让你的项目管理更加便捷。</span>
	</p>
	<p class="MsoNormal">
		<span style="font-size:16px;">五、</span><span style="font-size:16px;">PythonFMXBuilder</span><span style="font-size:16px;">和</span><span style="font-size:16px;">Delphi for Python Exporter</span><span style="font-size:16px;">：你的开发利器</span>
	</p>
	<p class="MsoNormal">
		<span style="font-size:16px;">为了进一步提升开发效率，</span><span style="font-size:16px;">DelphiFMX4Python</span><span style="font-size:16px;">还提供了两个强大的工具：</span>
	</p>
	<p class="MsoNormal">
		<span style="font-size:16px;">PythonFMXBuilder:&nbsp;&nbsp;</span><span style="font-size:16px;">专门用于将你的</span><span style="font-size:16px;">Python</span><span style="font-size:16px;">脚本部署到</span><span style="font-size:16px;">Android</span><span style="font-size:16px;">平台，简化了</span><span style="font-size:16px;">Android</span><span style="font-size:16px;">应用的发布流程。</span>
	</p>
	<p class="MsoNormal">
		<span style="font-size:16px;">Delphi for Python Exporter:&nbsp;&nbsp;</span><span style="font-size:16px;">这个工具可以简化你的</span><span style="font-size:16px;">UI</span><span style="font-size:16px;">设计过程，让你更专注于应用的逻辑和功能。</span>
	</p>
	<p class="MsoNormal">
		<span style="font-size:16px;">六、性能与效率的完美结合</span>
	</p>
	<p class="MsoNormal">
		<span style="font-size:16px;">DelphiFMX4Python</span><span style="font-size:16px;">并非简单的封装，它通过原生编译的方式，将</span><span style="font-size:16px;">Python</span><span style="font-size:16px;">代码与</span><span style="font-size:16px;">FMX</span><span style="font-size:16px;">框架紧密结合，确保了应用的高性能和高效运行。告别缓慢的解释型语言</span><span style="font-size:16px;">GUI</span><span style="font-size:16px;">框架，体验原生应用的流畅速度！</span>
	</p>
	<p class="MsoNormal">
		<span style="font-size:16px;">七、打破技术壁垒，释放无限可能</span>
	</p>
	<p class="MsoNormal">
		<span style="font-size:16px;">DelphiFMX4Python</span><span style="font-size:16px;">打破了</span><span style="font-size:16px;">Python GUI</span><span style="font-size:16px;">开发的传统局限，让你可以充分发挥</span><span style="font-size:16px;">Python</span><span style="font-size:16px;">的优势，并利用</span><span style="font-size:16px;">FMX</span><span style="font-size:16px;">框架构建出美观、高效、跨平台的原生应用。无论是桌面应用、移动应用还是其他类型的应用，</span><span style="font-size:16px;">DelphiFMX4Python</span><span style="font-size:16px;">都能满足你的需求，释放你无限的创造力！</span>
	</p>
	<p class="MsoNormal">
		<span style="font-size:16px;">总结：</span>
	</p>
	<p class="MsoNormal">
		<span style="font-size:16px;">DelphiFMX4Python</span><span style="font-size:16px;">是一个极具潜力的</span><span style="font-size:16px;">Python GUI</span><span style="font-size:16px;">开发利器，它以其简易的安装、广泛的支持、强大的功能和高效的性能，为</span><span style="font-size:16px;">Python</span><span style="font-size:16px;">开发者提供了一种全新的跨平台</span><span style="font-size:16px;">GUI</span><span style="font-size:16px;">开发方案。告别繁琐的跨平台开发，拥抱</span><span style="font-size:16px;">DelphiFMX4Python</span><span style="font-size:16px;">，开启你的</span><span style="font-size:16px;">GUI</span><span style="font-size:16px;">开发新篇章！</span>
	</p>
	<p class="MsoNormal">
		<span style="font-size:16px;"><span style="color:#454545;background-color:#FFFFFF;font-family:Verdana, &quot;">以上就是“</span><span style="color:#454545;background-color:#FFFFFF;font-family:Verdana, &quot;">DelphiFMX4Python：用Python也能轻松构建炫酷跨平台GUI应用，跨平台支持Android64</span><span style="color:#454545;background-color:#FFFFFF;font-family:Verdana, &quot;">”</span><span style="color:#454545;background-color:#FFFFFF;font-family:Verdana, &quot;">的详细内容，想要了解更多</span><a href="http://www.phpxs.com/" target="_blank">Python</a><a href="http://www.phpxs.com/" target="_blank">教程</a><span style="color:#454545;background-color:#FFFFFF;font-family:Verdana, &quot;">欢迎持续关注</span><a href="http://www.phpxs.com/" target="_blank">编程</a><span style="color:#454545;background-color:#FFFFFF;font-family:Verdana, &quot;">学习网。</span>&nbsp;</span>
	</p>
</p>]]></description>
<pubDate>2026-05-18</pubDate>
</item>
<item>
<title><![CDATA[Pyodide：一个能够在浏览器和Node.js环境中运行Python发行版！]]></title>
<link>http://www.phpxs.com/post/14187/</link>
<description><![CDATA[<p class="MsoNormal">
	<span style="font-size:16px;"><img src="http://www.phpxs.com/uploads/202605/18/72c8c9c66cf69eb1aec7ccc8c0cb4bf2.png" alt="" /><br />
</span>
</p>
<p class="MsoNormal">
	<span style="font-size:16px;">Pyodide</span><span style="font-size:16px;">支持通过</span><span style="font-size:16px;">micropip</span><span style="font-size:16px;">安装和运行</span><span style="font-size:16px;">Python</span><span style="font-size:16px;">包，用户可以轻松地在浏览器中使用纯</span><span style="font-size:16px;">Python</span><span style="font-size:16px;">的包，只要这些包在</span><span style="font-size:16px;">PyPI</span><span style="font-size:16px;">上有对应的</span><span style="font-size:16px;">wheel</span><span style="font-size:16px;">文件。此外，</span><span style="font-size:16px;">Pyodide</span><span style="font-size:16px;">还移植了一些有</span><span style="font-size:16px;">C</span><span style="font-size:16px;">扩展的流行</span><span style="font-size:16px;">Python</span><span style="font-size:16px;">库，例如</span><span style="font-size:16px;">NumPy</span><span style="font-size:16px;">、</span><span style="font-size:16px;">pandas</span><span style="font-size:16px;">、</span><span style="font-size:16px;">SciPy</span><span style="font-size:16px;">、</span><span style="font-size:16px;">Matplotlib</span><span style="font-size:16px;">和</span><span style="font-size:16px;">scikit-learn</span><span style="font-size:16px;">等。这些科学计算和数据处理库的支持，使得</span><span style="font-size:16px;">Pyodide</span><span style="font-size:16px;">在数据科学和机器学习领域具有很大的潜力。</span>
</p>
<p class="MsoNormal">
	<span style="font-size:16px;">无缝集成</span><span style="font-size:16px;">JavaScript</span><span style="font-size:16px;">与</span><span style="font-size:16px;">Python</span>
</p>
<p class="MsoNormal">
	<span style="font-size:16px;">Pyodide</span><span style="font-size:16px;">的另一个显著特点是其强大的</span><span style="font-size:16px;">JavaScript</span><span style="font-size:16px;">与</span><span style="font-size:16px;">Python</span><span style="font-size:16px;">的外部函数接口。这意味着开发者可以在同一项目中无缝混合使用</span><span style="font-size:16px;">JavaScript</span><span style="font-size:16px;">和</span><span style="font-size:16px;">Python</span><span style="font-size:16px;">，并通过简洁的接口进行交互。这种集成不仅支持错误处理和异步操作，还大大降低了不同语言之间的协调成本，极大提升了用户的开发体验。</span>
</p>
<p class="MsoNormal">
	<span style="font-size:16px;">完整的</span><span style="font-size:16px;">Web API</span><span style="font-size:16px;">访问</span>
</p>
<p class="MsoNormal">
	<span style="font-size:16px;">在浏览器中使用</span><span style="font-size:16px;">Pyodide</span><span style="font-size:16px;">时，</span><span style="font-size:16px;">Python</span><span style="font-size:16px;">代码能够完全访问</span><span style="font-size:16px;">Web API</span><span style="font-size:16px;">。用户可以直接使用浏览器提供的各种功能，例如</span><span style="font-size:16px;">DOM</span><span style="font-size:16px;">操作、网络请求等。这使得使用</span><span style="font-size:16px;">Python</span><span style="font-size:16px;">进行网页开发变得简单而高效，让开发者能够利用</span><span style="font-size:16px;">Python</span><span style="font-size:16px;">的优势，同时也享受</span><span style="font-size:16px;">Web API</span><span style="font-size:16px;">带来的灵活性。</span>
</p>
<p class="MsoNormal">
	<span style="font-size:16px;">快速上手：不同的启动方式</span>
</p>
<p class="MsoNormal">
	<span style="font-size:16px;">无论你的技术水平如何，</span><span style="font-size:16px;">Pyodide</span><span style="font-size:16px;">都提供了多种快速上手的方式：</span>
</p>
<p class="MsoNormal">
	<span style="font-size:16px;">1.&nbsp;</span><span style="font-size:16px;">使用托管的</span><span style="font-size:16px;">Pyodide</span><span style="font-size:16px;">发行版</span><br />
<span style="font-size:16px;">用户可以直接访问</span><span style="font-size:16px;">Pyodide</span><span style="font-size:16px;">的文档，按照提示进行配置和使用。</span>
</p>
<p class="MsoNormal">
	<span style="font-size:16px;">2.&nbsp;</span><span style="font-size:16px;">从发布页面下载</span><span style="font-size:16px;">Pyodide</span><span style="font-size:16px;">版本</span><br />
<span style="font-size:16px;">对于有经验的用户，可以从</span><span style="font-size:16px;">Pyodide</span><span style="font-size:16px;">的发布页面下载所需版本，并通过本地</span><span style="font-size:16px;">Web</span><span style="font-size:16px;">服务器进行服务。</span>
</p>
<p class="MsoNormal">
	<span style="font-size:16px;">3.&nbsp;</span><span style="font-size:16px;">从源代码构建</span><span style="font-size:16px;">Pyodide</span><br />
<span style="font-size:16px;">对于希望深入了解其内部实现的高级用户，提供了使用</span><span style="font-size:16px;">make</span><span style="font-size:16px;">编译源代码的方式，主要适用于</span><span style="font-size:16px;">Linux</span><span style="font-size:16px;">用户。</span>
</p>
<p class="MsoNormal">
	<span style="font-size:16px;">4.&nbsp;</span><span style="font-size:16px;">使用</span><span style="font-size:16px;">Docker</span><span style="font-size:16px;">镜像</span><br />
<span style="font-size:16px;">对于</span><span style="font-size:16px;">Windows</span><span style="font-size:16px;">和</span><span style="font-size:16px;">macOS</span><span style="font-size:16px;">用户，或那些希望使用</span><span style="font-size:16px;">Debian</span><span style="font-size:16px;">基础</span><span style="font-size:16px;">Docker</span><span style="font-size:16px;">镜像的</span><span style="font-size:16px;">Linux</span><span style="font-size:16px;">用户，该方法是最推荐的。这样 </span><span style="font-size:16px;">users </span><span style="font-size:16px;">可以在已有依赖的环境中快速启动</span><span style="font-size:16px;">Pyodide</span><span style="font-size:16px;">。</span>
</p>
<p class="MsoNormal">
	<span style="font-size:16px;">总结</span>
</p>
<p class="MsoNormal">
	<span style="font-size:16px;">尽管</span><span style="font-size:16px;">Pyodide</span><span style="font-size:16px;">已经具备了许多强大的功能，但它仍然面临一些挑战。首先，</span><span style="font-size:16px;">WebAssembly</span><span style="font-size:16px;">的生态环境相对较新，相对于传统的</span><span style="font-size:16px;">Python</span><span style="font-size:16px;">环境，某些功能和库可能暂时不支持。其次，运行性能和兼容性也可能受到一些限制。因此，未来需要持续优化和改进，以使得</span><span style="font-size:16px;">Pyodide</span><span style="font-size:16px;">能够在更广泛的场景中流畅运行。</span>
</p>
<p class="MsoNormal">
	<span style="font-size:16px;">然而，随着</span><span style="font-size:16px;">WebAssembly</span><span style="font-size:16px;">的持续发展和普及，</span><span style="font-size:16px;">Pyodide</span><span style="font-size:16px;">也必将迎来更多的机会。在数据科学、机器学习以至于一般的</span><span style="font-size:16px;">Web</span><span style="font-size:16px;">开发等领域，</span><span style="font-size:16px;">Pyodide</span><span style="font-size:16px;">都可能成为一种颠覆传统的开发工具。</span>
</p>
<p class="MsoNormal">
	<span style="font-size:16px;">通过将</span><span style="font-size:16px;">Python</span><span style="font-size:16px;">带入基于浏览器的环境，</span><span style="font-size:16px;">Pyodide</span><span style="font-size:16px;">让更多的开发者能够更方便地使用这一强大的编程语言。无论你是一个经验丰富的开发者，还是一个刚刚开始学习编程的初学者，</span><span style="font-size:16px;">Pyodide</span><span style="font-size:16px;">都能为你提供一个灵活且富有创意的开发平台。</span>
</p>
<p class="MsoNormal">
	<span style="font-size:16px;"><span style="color:#454545;font-size:16px;background-color:#FFFFFF;font-family:Verdana, &quot;">以上就是“</span><span style="color:#454545;font-size:16px;background-color:#FFFFFF;font-family:Verdana, &quot;">Pyodide：一个能够在浏览器和Node.js环境中运行Python发行版！</span><span style="color:#454545;font-size:16px;background-color:#FFFFFF;font-family:Verdana, &quot;">”</span><span style="color:#454545;font-size:16px;background-color:#FFFFFF;font-family:Verdana, &quot;">的详细内容，想要了解更多</span><a href="http://www.phpxs.com/" target="_blank">Python</a><a href="http://www.phpxs.com/" target="_blank">教程</a><span style="color:#454545;font-size:16px;background-color:#FFFFFF;font-family:Verdana, &quot;">欢迎持续关注</span><a href="http://www.phpxs.com/" target="_blank">编程</a><span style="color:#454545;font-size:16px;background-color:#FFFFFF;font-family:Verdana, &quot;">学习网。</span><br />
</span>
</p>]]></description>
<pubDate>2026-05-18</pubDate>
</item>
<item>
<title><![CDATA[谷歌趋势(Google Trends)页面已更新为现代化风格 更方便比较搜索数据]]></title>
<link>http://www.phpxs.com/post/14186/</link>
<description><![CDATA[<p>
	<img src="http://www.phpxs.com/uploads/202605/16/a337acd746920946737281718509eaf5.png" alt="" />
</p>
<p>
	<p>
		<span style="font-size:16px;">搜索引</span><span style="font-size:16px;"></span><span style="font-size:16px;">擎</span><span style="font-size:16px;">提供商通常都会开发指数功能，该功能用于帮助行业人士探索平台关于各类关键词的搜索数据，例如谷歌趋势、百度指数、微信指数等。</span>
	</p>
	<p>
		<span style="font-size:16px;">对行业人士来说搜索引擎趋势或指数功能还是比较重要的，所以现在谷歌将谷歌搜索趋势页面升级改造，换成全新的现代化界面方便用户查找不同的关键词进行对比。</span>
	</p>
	<p>
		<span style="font-size:16px;">新版谷歌趋势主要是界面上的升级优化，实际功能其实没有太大区别，最多支持同时查找 8 个关键词进行搜索趋势对比，可以查询自 2004 年以来的搜索数据。</span>
	</p>
	<p>
		<span style="font-size:16px;">另外谷歌趋势还新增 Gemini AI 功能，用户输入特定关键词或自己的需求后，AI 会生成推荐的关键词，这样用户就可以直接对比这些关键词的数据。</span>
	</p>
	<p>
		<span style="font-size:16px;">谷歌在博客中表示，新版谷歌趋势可以让记者、内容创作者、研究人员以及所有对搜索趋势感兴趣的人士都可以更轻松地获取数据洞察、激发灵感并深入探索特定主题。</span>
	</p>
	<p>
		<span style="color:#454545;font-size:16px;background-color:#FFFFFF;font-family:Verdana, &quot;">以上就是“</span><span style="color:#454545;font-size:16px;background-color:#FFFFFF;font-family:Verdana, &quot;">谷歌趋势(Google Trends)页面已更新为现代化风格 更方便比较搜索数据</span><span style="color:#454545;font-size:16px;background-color:#FFFFFF;font-family:Verdana, &quot;">”</span><span style="color:#454545;font-size:16px;background-color:#FFFFFF;font-family:Verdana, &quot;">的详细内容，想要了解更多</span><a href="http://www.phpxs.com/" target="_blank"><span style="font-size:16px;">Python</span></a><a href="http://www.phpxs.com/" target="_blank"><span style="font-size:16px;">教程</span></a><span style="color:#454545;font-size:16px;background-color:#FFFFFF;font-family:Verdana, &quot;">欢迎持续关注</span><a href="http://www.phpxs.com/" target="_blank"><span style="font-size:16px;">编程</span></a><span style="color:#454545;font-size:16px;background-color:#FFFFFF;font-family:Verdana, &quot;">学习网。</span><span style="font-size:16px;"></span>
	</p>
<span style="font-size:16px;"></span>
</p>]]></description>
<pubDate>2026-05-16</pubDate>
</item>
<item>
<title><![CDATA[X/Twitter推出MCP服务器 允许OpenClaw等通过API执行操作]]></title>
<link>http://www.phpxs.com/post/14185/</link>
<description><![CDATA[<p>
	<img src="http://www.phpxs.com/uploads/202605/16/63e00765cf630e472589aa2e1c0a2d68.png" alt="" />
</p>
<p>
	<p>
		<span style="font-size:16px;">社交网络平台 X/Twitter 日前面向开发者们公开 X API FastMCP Server 仓库，该仓库于 2026 年 1 月建立，最后更新时间是 2026 年 2 月 7 日，不过直到现在 X 才开放这个仓库。</span>
	</p>
	<p>
		<span style="font-size:16px;">这个仓库的主要内容就是 MCP 服务器，即开发者可以通过 MCP 协议调用 API 执行标准化操作工具调用，例如搜索帖子、创建内容、点赞、转发、查找用户等。</span>
	</p>
	<p>
		<span style="font-size:16px;">X 允许任何兼容 XMCP 服务器的 AI 客户端例如 OpenClaw、Claude Code、Cursor、Windsurf 等进行连接，只不过开发者需要提前开通付费的 API 权限后才能使用。</span>
	</p>
	<p>
		<span style="font-size:16px;">传统 REST API 调用不同，XMCP 以本地 HTTP 服务器形式运行，AI 智能体可以通过 MCP 直接对话式调用工具，例如用户可以直接告诉 OpenClaw 发出搜索特定用户帖子，随后智能体就可以通过 MCP 经过 API 完成内容搜索。</span>
	</p>
	<p>
		<span style="font-size:16px;">XMCP 服务器包含以下功能：</span>
	</p>
	<p>
		<span style="font-size:16px;">启动时动态拉取 X OpenAPI 规范，排除流式和 Webhook 端点，仅保留适合请求 - 响应模式的操作。</span>
	</p>
	<p>
		<span style="font-size:16px;">OAuth 1.0a 安全认证：首次运行时需要打开浏览器进行用户授权，回调地址可自定义，令牌仅内存存储，不会持久化存储。</span>
	</p>
	<p>
		<span style="font-size:16px;">白名单调用机制：通过环境变量 X_API_TOOL_ALLOWLIST 精细控制可用工具，防止 AI 智能体越权。</span>
	</p>
	<p>
		<span style="font-size:16px;">可选 Grok 测试客户端：集成 xAI API 密钥，可以直接测试与 Grok 的 MCP 交互。</span>
	</p>
	<p>
		<span style="font-size:16px;">轻量部署：Python 3.9 + 环境，依赖也比较简单，可以一键启动，支持 ngrok 等隧道实现远程访问。</span>
	</p>
	<p>
		<span style="font-size:16px;">付费问题：</span>
	</p>
	<p>
		<span style="font-size:16px;">MCP 服务器并不能直接操作 X，用户必须开通付费的 X API 才能使用，有兴趣的用户可以查看下面的参考链接。</span>
	</p>
	<p>
		<span style="color:#454545;font-size:16px;background-color:#FFFFFF;font-family:Verdana, &quot;">以上就是“</span><span style="color:#454545;font-size:16px;background-color:#FFFFFF;font-family:Verdana, &quot;"><span style="font-size:16px;">X/Twitter推出MCP服务器 允许OpenClaw等通过API执行操作</span><span style="font-size:16px;"></span></span><span style="color:#454545;font-size:16px;background-color:#FFFFFF;font-family:Verdana, &quot;">”</span><span style="color:#454545;font-size:16px;background-color:#FFFFFF;font-family:Verdana, &quot;">的详细内容，想要了解更多</span><a href="http://www.phpxs.com/" target="_blank"><span style="font-size:16px;">Python</span></a><a href="http://www.phpxs.com/" target="_blank"><span style="font-size:16px;">教程</span></a><span style="color:#454545;font-size:16px;background-color:#FFFFFF;font-family:Verdana, &quot;">欢迎持续关注</span><a href="http://www.phpxs.com/" target="_blank"><span style="font-size:16px;">编程</span></a><span style="color:#454545;font-size:16px;background-color:#FFFFFF;font-family:Verdana, &quot;">学习网。</span><span style="font-size:16px;"></span>
	</p>
</p>]]></description>
<pubDate>2026-05-16</pubDate>
</item>
<item>
<title><![CDATA[4款免费Python可视化拖拽GUI工具，从入门到进阶怎么选？]]></title>
<link>http://www.phpxs.com/post/14184/</link>
<description><![CDATA[<p>
	<img src="http://www.phpxs.com/uploads/202605/16/0b3915c8c25a6bb92dfe136fc163c5c3.png" alt="" />
</p>
<p>
	<p style="text-align:left;">
		<span style="font-size:16px;">写Python GUI的痛谁懂</span><span style="font-size:16px;">：用纯代码一行行敲界面，调布局调到怀疑人生，想做个像样的桌面应用，结果大部分时间都在和pack()、grid()、place()斗智斗勇。今天一次性盘点&nbsp;</span><span style="font-size:16px;">4款免费的可视化拖拽GUI编辑工具</span><span style="font-size:16px;">，从在线轻量到专业级，总有一款适合你。</span>
	</p>
	<h2 style="text-align:left;">
		<span style="font-size:16px;">Tkinter-helper</span><span style="font-size:16px;">：在线免装，5分钟出界面</span>
	</h2>
	<p style="text-align:left;">
		<span style="font-size:16px;">如果你只是想</span><span style="font-size:16px;">快速搭一个简单界面</span><span style="font-size:16px;">，不想装任何软件，</span><span style="font-size:16px;">Tkinter-helper</span><span style="font-size:16px;">&nbsp;是首选。</span>
	</p>
	<p style="text-align:left;">
		<span style="font-size:16px;">官网</span><span style="font-size:16px;">：</span>
	</p>
	<ul style="margin-left:0px;" class="list-paddingleft-1">
		<li>
			<span style="font-size:16px;">• 旧版：https://www.pytk.net/</span>
		</li>
		<li>
			<span style="font-size:16px;">• 新版（推荐）：https://grid.pytk.net/</span>
		</li>
	</ul>
	<p style="text-align:left;">
		<span style="font-size:16px;">核心特点</span><span style="font-size:16px;">：</span>
	</p>
	<table>
		<tbody>
			<tr>
				<th align="left" style="border:1px solid #DFDFDF;text-align:left;">
					<span style="font-size:16px;">维度</span>
				</th>
				<th align="left" style="border:1px solid #DFDFDF;text-align:left;">
					<span style="font-size:16px;">说明</span>
				</th>
			</tr>
		</tbody>
		<tbody>
			<tr>
				<td align="left" style="border:1px solid #DFDFDF;">
					<span style="font-size:16px;">使用方式</span>
				</td>
				<td align="left" style="border:1px solid #DFDFDF;">
					<span style="font-size:16px;">纯网页在线，打开即用，零安装</span>
				</td>
			</tr>
			<tr>
				<td align="left" style="border:1px solid #DFDFDF;">
					<span style="font-size:16px;">底层框架</span>
				</td>
				<td align="left" style="border:1px solid #DFDFDF;">
					<span style="font-size:16px;">Python 内置&nbsp;</span><span style="font-size:16px;">tkinter</span><span style="font-size:16px;">，无需额外依赖</span>
				</td>
			</tr>
			<tr>
				<td align="left" style="border:1px solid #DFDFDF;">
					<span style="font-size:16px;">组件数量</span>
				</td>
				<td align="left" style="border:1px solid #DFDFDF;">
					<span style="font-size:16px;">基础组件齐全（按钮、输入框、标签、列表框、下拉框、进度条、滑块、表格、画布等），扩展组件持续更新中</span>
				</td>
			</tr>
			<tr>
				<td align="left" style="border:1px solid #DFDFDF;">
					<span style="font-size:16px;">上手难度</span>
				</td>
				<td align="left" style="border:1px solid #DFDFDF;">
					<span style="font-size:16px;">⭐（极低）</span>
				</td>
			</tr>
		</tbody>
	</table>
	<p style="text-align:left;">
		<span style="font-size:16px;">界面布局</span><span style="font-size:16px;">：左侧组件列表 → 中间画布拖拽 → 右侧属性配置，三栏式经典设计。</span>
	</p>
	<p style="text-align:left;">
		<span style="font-size:16px;">适用场景</span><span style="font-size:16px;">：</span>
	</p>
	<ul style="margin-left:0px;" class="list-paddingleft-1">
		<li>
			<span style="font-size:16px;">• 内部小工具、配置界面、监控面板</span>
		</li>
		<li>
			<span style="font-size:16px;">• 对UI美化要求不高，追求</span><span style="font-size:16px;">快和省</span><span style="font-size:16px;">的项目</span>
		</li>
		<li>
			<span style="font-size:16px;">• 配合 ChatGPT：先用 helper 画完布局，再让 AI 写业务代码和美化样式，效率翻倍</span>
		</li>
	</ul>
	<p style="text-align:left;">
		<span style="font-size:16px;">局限性</span><span style="font-size:16px;">：组件丰富度不如桌面级工具，复杂交互仍需手写代码补充。</span>
	</p>
	<h2 style="text-align:left;">
		<span style="font-size:16px;">WxPython</span><span style="font-size:16px;">：老牌经典，VB式拖拽体验</span>
	</h2>
	<p style="text-align:left;">
		<span style="font-size:16px;">想要</span><span style="font-size:16px;">本地安装、离线使用</span><span style="font-size:16px;">，且习惯类似 </span><span style="font-size:16px;">Visual Basic</span><span style="font-size:16px;"> 的拖拽式开发？</span><span style="font-size:16px;">WxPython</span><span style="font-size:16px;">&nbsp;是老牌之选。</span>
	</p>
	<p style="text-align:justify;">
		<div style="text-align:left;">
			<span style="font-size:16px;">官网：https://wxpython.org/index.html</span>
		</div>
		<div style="text-align:left;">
			<span style="font-size:16px;">教程：https://github.com/necan/wxPython-tutorial</span>
		</div>
	</p>
	<p style="text-align:left;">
		<span style="font-size:16px;">安装方式</span><span style="font-size:16px;">：</span>
	</p>
</p>
<p>
	<img src="http://www.phpxs.com/uploads/202605/16/cb37f7aade8b6863f4955ae0f4cedf4b.png" alt="" />
</p>
<p>
	<p style="text-align:left;">
		<span style="font-size:16px;">核心特点</span><span style="font-size:16px;">：</span>
	</p>
	<table>
		<tbody>
			<tr>
				<th align="left" style="border:1px solid #DFDFDF;text-align:left;">
					<span style="font-size:16px;">维度</span>
				</th>
				<th align="left" style="border:1px solid #DFDFDF;text-align:left;">
					<span style="font-size:16px;">说明</span>
				</th>
			</tr>
		</tbody>
		<tbody>
			<tr>
				<td align="left" style="border:1px solid #DFDFDF;">
					<span style="font-size:16px;">使用方式</span>
				</td>
				<td align="left" style="border:1px solid #DFDFDF;">
					<span style="font-size:16px;">下载安装，本地IDE式开发</span>
				</td>
			</tr>
			<tr>
				<td align="left" style="border:1px solid #DFDFDF;">
					<span style="font-size:16px;">底层框架</span>
				</td>
				<td align="left" style="border:1px solid #DFDFDF;">
					<span style="font-size:16px;">wxWidgets 的 Python 封装</span>
				</td>
			</tr>
			<tr>
				<td align="left" style="border:1px solid #DFDFDF;">
					<span style="font-size:16px;">组件自由度</span>
				</td>
				<td align="left" style="border:1px solid #DFDFDF;">
					<span style="font-size:16px;">比 Tkinter-helper 更高，拖拽编辑更灵活</span>
				</td>
			</tr>
			<tr>
				<td align="left" style="border:1px solid #DFDFDF;">
					<span style="font-size:16px;">上手难度</span>
				</td>
				<td align="left" style="border:1px solid #DFDFDF;">
					<span style="font-size:16px;">⭐⭐</span>
				</td>
			</tr>
		</tbody>
	</table>
	<p style="text-align:left;">
		<span style="font-size:16px;">适用场景</span><span style="font-size:16px;">：</span>
	</p>
	<ul style="margin-left:0px;" class="list-paddingleft-1">
		<li>
			<span style="font-size:16px;">• 需要离线开发的桌面应用</span>
		</li>
		<li>
			<span style="font-size:16px;">• 对组件位置和大小有精细控制需求</span>
		</li>
		<li>
			<span style="font-size:16px;">• 团队内有 VB 开发经验，转型 Python 的过渡方案</span>
		</li>
	</ul>
	<p style="text-align:left;">
		<span style="font-size:16px;">局限性</span><span style="font-size:16px;">：界面风格偏传统，组件库更新较慢，跨平台一致性不如 </span><span style="font-size:16px;">PyQt</span><span style="font-size:16px;">。</span>
	</p>
	<h2 style="text-align:left;">
		<span style="font-size:16px;">PyMe</span><span style="font-size:16px;">：功能全面，还能打包 APK</span>
	</h2>
	<p style="text-align:left;">
		<span style="font-size:16px;">比较新的工具，</span><span style="font-size:16px;">如果你不仅要做桌面端，还希望</span><span style="font-size:16px;">一键打包成可执行文件甚至安卓 APK</span><span style="font-size:16px;">，</span><span style="font-size:16px;">PyMe</span><span style="font-size:16px;">&nbsp;值得尝试。</span>
	</p>
	<p style="text-align:left;">
		<span style="font-size:16px;">官网</span><span style="font-size:16px;">：https://www.py-me.com/</span>
	</p>
	<p style="text-align:left;">
		<span style="font-size:16px;">核心特点</span><span style="font-size:16px;">：</span>
	</p>
	<table>
		<tbody>
			<tr>
				<th align="left" style="border:1px solid #DFDFDF;text-align:left;">
					<span style="font-size:16px;">维度</span>
				</th>
				<th align="left" style="border:1px solid #DFDFDF;text-align:left;">
					<span style="font-size:16px;">说明</span>
				</th>
			</tr>
		</tbody>
		<tbody>
			<tr>
				<td align="left" style="border:1px solid #DFDFDF;">
					<span style="font-size:16px;">使用方式</span>
				</td>
				<td align="left" style="border:1px solid #DFDFDF;">
					<span style="font-size:16px;">下载安装，一体化IDE</span>
				</td>
			</tr>
			<tr>
				<td align="left" style="border:1px solid #DFDFDF;">
					<span style="font-size:16px;">底层框架</span>
				</td>
				<td align="left" style="border:1px solid #DFDFDF;">
					<span style="font-size:16px;">基于&nbsp;</span><span style="font-size:16px;">tkinter</span><span style="font-size:16px;">，但做了深度模块化和封装</span>
				</td>
			</tr>
			<tr>
				<td align="left" style="border:1px solid #DFDFDF;">
					<span style="font-size:16px;">打包能力</span>
				</td>
				<td align="left" style="border:1px solid #DFDFDF;">
					<span style="font-size:16px;">支持导出&nbsp;</span><span style="font-size:16px;">.exe</span><span style="font-size:16px;">&nbsp;和&nbsp;</span><span style="font-size:16px;">.apk</span>
				</td>
			</tr>
			<tr>
				<td align="left" style="border:1px solid #DFDFDF;">
					<span style="font-size:16px;">上手难度</span>
				</td>
				<td align="left" style="border:1px solid #DFDFDF;">
					<span style="font-size:16px;">⭐⭐⭐</span>
				</td>
			</tr>
		</tbody>
	</table>
	<p style="text-align:left;">
		<span style="font-size:16px;">界面亮点</span><span style="font-size:16px;">：</span>
	</p>
	<ul style="margin-left:0px;" class="list-paddingleft-1">
		<li>
			<span style="font-size:16px;">• 左侧控件面板（RadioButton、CheckButton、Switch、LabelFrame、TreeView、ListView、Canvas、DatePicker、Navigation 等）</span>
		</li>
		<li>
			<span style="font-size:16px;">• 中间可视化设计区，支持拖拽和属性绑定</span>
		</li>
		<li>
			<span style="font-size:16px;">• 底部文件管理器，可直接管理项目结构</span>
		</li>
		<li>
			<span style="font-size:16px;">• 集成</span><span style="font-size:16px;">运行</span><span style="font-size:16px;">和</span><span style="font-size:16px;">发布</span><span style="font-size:16px;">按钮，一条龙完成开发到部署</span>
		</li>
	</ul>
	<p style="text-align:left;">
		<span style="font-size:16px;">注意</span><span style="font-size:16px;">：目前提供</span><span style="font-size:16px;">免费体验版</span><span style="font-size:16px;">，但未来收费策略可能调整，建议先体验再决定是否深度使用。</span>
	</p>
	<p style="text-align:left;">
		<span style="font-size:16px;">适用场景</span><span style="font-size:16px;">：</span>
	</p>
	<ul style="margin-left:0px;" class="list-paddingleft-1">
		<li>
			<span style="font-size:16px;">• 需要快速交付的桌面/移动端原型</span>
		</li>
		<li>
			<span style="font-size:16px;">• 不想折腾打包环境，希望工具链一体化的开发者</span>
		</li>
	</ul>
	<h2 style="text-align:left;">
		<span style="font-size:16px;">PyQt：功能最强，体积最大</span>
	</h2>
	<p style="text-align:left;">
		<span style="font-size:16px;">如果项目对界面</span><span style="font-size:16px;">美观度、组件丰富度、专业感</span><span style="font-size:16px;">有硬性要求，</span><span style="font-size:16px;">PyQt</span><span style="font-size:16px;">&nbsp;是终极答案——前提是能接受它的代价。</span>
	</p>
	<p style="text-align:justify;">
		<div style="text-align:left;">
			<span style="font-size:16px;">官网：https://doc.qt.io/qtforpython-6/</span>
		</div>
		<div style="text-align:left;">
			<span style="font-size:16px;">教程：</span>
		</div>
	</p>
	<ul style="margin-left:0px;" class="list-paddingleft-1">
		<li>
			<span style="font-size:16px;">• https://github.com/LC-space/PyQt6-tutorial</span>
		</li>
		<li>
			<span style="font-size:16px;">• https://www.pythonguis.com/pyqt6-tutorial/</span>
		</li>
	</ul>
	<p style="text-align:left;">
		<span style="font-size:16px;">核心特点</span><span style="font-size:16px;">：</span>
	</p>
	<table>
		<tbody>
			<tr>
				<th align="left" style="border:1px solid #DFDFDF;text-align:left;">
					<span style="font-size:16px;">维度</span>
				</th>
				<th align="left" style="border:1px solid #DFDFDF;text-align:left;">
					<span style="font-size:16px;">说明</span>
				</th>
			</tr>
		</tbody>
		<tbody>
			<tr>
				<td align="left" style="border:1px solid #DFDFDF;">
					<span style="font-size:16px;">使用方式</span>
				</td>
				<td align="left" style="border:1px solid #DFDFDF;">
					<span style="font-size:16px;">安装 PyQt + Qt Designer，设计器拖拽 + 代码补充</span>
				</td>
			</tr>
			<tr>
				<td align="left" style="border:1px solid #DFDFDF;">
					<span style="font-size:16px;">底层框架</span>
				</td>
				<td align="left" style="border:1px solid #DFDFDF;">
					<span style="font-size:16px;">Qt6 for Python</span>
				</td>
			</tr>
			<tr>
				<td align="left" style="border:1px solid #DFDFDF;">
					<span style="font-size:16px;">组件丰富度</span>
				</td>
				<td align="left" style="border:1px solid #DFDFDF;">
					<span style="font-size:16px;">⭐⭐⭐⭐⭐（图表、3D、多媒体、网络、数据库等全支持）</span>
				</td>
			</tr>
			<tr>
				<td align="left" style="border:1px solid #DFDFDF;">
					<span style="font-size:16px;">上手难度</span>
				</td>
				<td align="left" style="border:1px solid #DFDFDF;">
					<span style="font-size:16px;">⭐⭐⭐⭐</span>
				</td>
			</tr>
		</tbody>
	</table>
	<p style="text-align:left;">
		<span style="font-size:16px;">为什么又爱又恨</span><span style="font-size:16px;">：</span>
	</p>
	<ul style="margin-left:0px;" class="list-paddingleft-1">
		<li>
			<span style="font-size:16px;">• ✅&nbsp;</span><span style="font-size:16px;">爱</span><span style="font-size:16px;">：组件极其丰富，能做出媲美商业软件的界面（如数据可视化大屏、工业控制面板）</span>
		</li>
		<li>
			<span style="font-size:16px;">• ✅&nbsp;</span><span style="font-size:16px;">爱</span><span style="font-size:16px;">：Qt Designer 拖拽设计 + 信号槽机制，开发模式成熟</span>
		</li>
		<li>
			<span style="font-size:16px;">• ❌&nbsp;</span><span style="font-size:16px;">恨</span><span style="font-size:16px;">：</span><span style="font-size:16px;">打包体积巨大</span><span style="font-size:16px;">，一个简单程序可能几十MB起步</span>
		</li>
		<li>
			<span style="font-size:16px;">• ❌&nbsp;</span><span style="font-size:16px;">恨</span><span style="font-size:16px;">：学习曲线陡峭，很多高级功能 Designer 里拖不出来，必须手写代码</span>
		</li>
	</ul>
	<p style="text-align:left;">
		<span style="font-size:16px;">适用场景</span><span style="font-size:16px;">：</span>
	</p>
	<ul style="margin-left:0px;" class="list-paddingleft-1">
		<li>
			<span style="font-size:16px;">• 专业级桌面软件、数据可视化工具、工业上位机</span>
		</li>
		<li>
			<span style="font-size:16px;">• 对UI品质有硬性要求，且不在乎安装包体积的项目</span>
		</li>
	</ul>
	<blockquote>
		<p style="text-align:left;">
			<span style="font-size:16px;">学长建议</span><span style="font-size:16px;">：除非项目确实需要 PyQt 的独有组件（如复杂图表、3D渲染），否则中小型工具优先考虑前三款。</span>
		</p>
	</blockquote>
	<h2 style="text-align:left;">
		<span style="font-size:16px;">横向对比与选型指南</span>
	</h2>
	<table>
		<tbody>
			<tr>
				<th align="left" style="border:1px solid #DFDFDF;text-align:left;">
					<span style="font-size:16px;">工具</span>
				</th>
				<th align="left" style="border:1px solid #DFDFDF;text-align:left;">
					<span style="font-size:16px;">安装成本</span>
				</th>
				<th align="left" style="border:1px solid #DFDFDF;text-align:left;">
					<span style="font-size:16px;">上手难度</span>
				</th>
				<th align="left" style="border:1px solid #DFDFDF;text-align:left;">
					<span style="font-size:16px;">组件丰富度</span>
				</th>
				<th align="left" style="border:1px solid #DFDFDF;text-align:left;">
					<span style="font-size:16px;">打包体积</span>
				</th>
				<th align="left" style="border:1px solid #DFDFDF;text-align:left;">
					<span style="font-size:16px;">推荐场景</span>
				</th>
			</tr>
		</tbody>
		<tbody>
			<tr>
				<td align="left" style="border:1px solid #DFDFDF;">
					<span style="font-size:16px;">Tkinter-helper</span>
				</td>
				<td align="left" style="border:1px solid #DFDFDF;">
					<span style="font-size:16px;">零（网页版）</span>
				</td>
				<td align="left" style="border:1px solid #DFDFDF;">
					<span style="font-size:16px;">⭐</span>
				</td>
				<td align="left" style="border:1px solid #DFDFDF;">
					<span style="font-size:16px;">⭐⭐</span>
				</td>
				<td align="left" style="border:1px solid #DFDFDF;">
					<span style="font-size:16px;">极小</span>
				</td>
				<td align="left" style="border:1px solid #DFDFDF;">
					<span style="font-size:16px;">快速原型、简单工具、配合AI开发</span>
				</td>
			</tr>
			<tr>
				<td align="left" style="border:1px solid #DFDFDF;">
					<span style="font-size:16px;">WxPython</span>
				</td>
				<td align="left" style="border:1px solid #DFDFDF;">
					<span style="font-size:16px;">低（pip安装）</span>
				</td>
				<td align="left" style="border:1px solid #DFDFDF;">
					<span style="font-size:16px;">⭐⭐</span>
				</td>
				<td align="left" style="border:1px solid #DFDFDF;">
					<span style="font-size:16px;">⭐⭐⭐</span>
				</td>
				<td align="left" style="border:1px solid #DFDFDF;">
					<span style="font-size:16px;">小</span>
				</td>
				<td align="left" style="border:1px solid #DFDFDF;">
					<span style="font-size:16px;">离线桌面应用、VB风格迁移</span>
				</td>
			</tr>
			<tr>
				<td align="left" style="border:1px solid #DFDFDF;">
					<span style="font-size:16px;">PyMe</span>
				</td>
				<td align="left" style="border:1px solid #DFDFDF;">
					<span style="font-size:16px;">中（下载exe）</span>
				</td>
				<td align="left" style="border:1px solid #DFDFDF;">
					<span style="font-size:16px;">⭐⭐⭐</span>
				</td>
				<td align="left" style="border:1px solid #DFDFDF;">
					<span style="font-size:16px;">⭐⭐⭐⭐</span>
				</td>
				<td align="left" style="border:1px solid #DFDFDF;">
					<span style="font-size:16px;">中</span>
				</td>
				<td align="left" style="border:1px solid #DFDFDF;">
					<span style="font-size:16px;">需要打包exe/apk的一体化开发</span>
				</td>
			</tr>
			<tr>
				<td align="left" style="border:1px solid #DFDFDF;">
					<span style="font-size:16px;">PyQt</span>
				</td>
				<td align="left" style="border:1px solid #DFDFDF;">
					<span style="font-size:16px;">高（环境配置复杂）</span>
				</td>
				<td align="left" style="border:1px solid #DFDFDF;">
					<span style="font-size:16px;">⭐⭐⭐⭐</span>
				</td>
				<td align="left" style="border:1px solid #DFDFDF;">
					<span style="font-size:16px;">⭐⭐⭐⭐⭐</span>
				</td>
				<td align="left" style="border:1px solid #DFDFDF;">
					<span style="font-size:16px;">极大</span>
				</td>
				<td align="left" style="border:1px solid #DFDFDF;">
					<span style="font-size:16px;">专业级软件、复杂UI、数据可视化</span>
				</td>
			</tr>
		</tbody>
	</table>
	<h3>
		<span style="font-size:16px;">按需求选型</span>
	</h3>
	<ul style="margin-left:0px;" class="list-paddingleft-1">
		<li>
			<span style="font-size:16px;">•&nbsp;</span><span style="font-size:16px;">只想5分钟搭个界面</span><span style="font-size:16px;">&nbsp;→ 选&nbsp;</span><span style="font-size:16px;">Tkinter-helper</span><span style="font-size:16px;">（在线、零配置）</span>
		</li>
		<li>
			<span style="font-size:16px;">•&nbsp;</span><span style="font-size:16px;">要做传统风格的本地工具</span><span style="font-size:16px;">&nbsp;→ 选&nbsp;</span><span style="font-size:16px;">WxPython</span><span style="font-size:16px;">（pip安装、离线可用）</span>
		</li>
		<li>
			<span style="font-size:16px;">•&nbsp;</span><span style="font-size:16px;">要一键打包exe/apk交付</span><span style="font-size:16px;">&nbsp;→ 选&nbsp;</span><span style="font-size:16px;">PyMe</span><span style="font-size:16px;">（IDE一体化、发布方便）</span>
		</li>
		<li>
			<span style="font-size:16px;">•&nbsp;</span><span style="font-size:16px;">要做专业级商业软件</span><span style="font-size:16px;">&nbsp;→ 选&nbsp;</span><span style="font-size:16px;">PyQt</span><span style="font-size:16px;">（功能最全、颜值最高）</span>
		</li>
	</ul>
	<h2 style="text-align:left;">
		<span style="font-size:16px;">结语</span>
	</h2>
	<p style="text-align:left;">
		<span style="font-size:16px;">可视化拖拽工具的核心价值不是"不用写代码"，而是</span><span style="font-size:16px;">把重复性的界面布局工作交给工具，让你把精力集中在业务逻辑上</span><span style="font-size:16px;">。</span>
	</p>
	<p style="text-align:left;">
		<span style="font-size:16px;">对于个人开发者和小团队，</span><span style="font-size:16px;">Tkinter-helper + ChatGPT</span><span style="font-size:16px;">&nbsp;的组合可能是当前性价比最高的方案：helper 负责画骨架，AI 负责填血肉。而对于需要交付给客户的专业软件，PyQt 依然是绕不过去的标杆。</span>
	</p>
<span style="font-size:16px;"></span><span style="color:#454545;font-size:16px;background-color:#FFFFFF;font-family:Verdana, &quot;">以上就是“</span><span style="color:#454545;font-size:16px;background-color:#FFFFFF;font-family:Verdana, &quot;">4款免费Python可视化拖拽GUI工具，从入门到进阶怎么选？</span><span style="color:#454545;font-size:16px;background-color:#FFFFFF;font-family:Verdana, &quot;">”</span><span style="color:#454545;font-size:16px;background-color:#FFFFFF;font-family:Verdana, &quot;">的详细内容，想要了解更多</span><a href="http://www.phpxs.com/" target="_blank"><span style="font-size:16px;">Python</span></a><a href="http://www.phpxs.com/" target="_blank"><span style="font-size:16px;">教程</span></a><span style="color:#454545;font-size:16px;background-color:#FFFFFF;font-family:Verdana, &quot;">欢迎持续关注</span><a href="http://www.phpxs.com/" target="_blank"><span style="font-size:16px;">编程</span></a><span style="color:#454545;font-size:16px;background-color:#FFFFFF;font-family:Verdana, &quot;">学习网。</span><span style="font-size:16px;"></span>
</p>]]></description>
<pubDate>2026-05-16</pubDate>
</item>
<item>
<title><![CDATA[Hyperdiv，告别繁琐！用Python飞速构建炫酷Web UI！]]></title>
<link>http://www.phpxs.com/post/14183/</link>
<description><![CDATA[<p>
	<span style="font-size:16px;"><img src="http://www.phpxs.com/uploads/202605/16/3154eab86bf70cf9e448946fd7465c2e.png" alt="" /><br />
</span>
</p>
<p>
	<span style="font-size:16px;">还在为复杂的JavaScript框架和冗长的代码而烦恼吗？还在为Web UI开发耗时费力而抓狂吗？现在，有一个利器可以彻底改变你的开发体验——Hyperdiv！它是一个基于Python的强大框架，让你以闪电般的速度构建出响应迅速、界面美观的浏览器UI应用。抛开JavaScript的束缚，用你熟悉的Python语言，创造属于你的Web奇迹！</span>
</p>
<p>
	<span style="font-size:16px;">Hyperdiv</span><span style="font-size:16px;">：Python赋能Web UI开发的革命</span>
</p>
<p>
	<span style="font-size:16px;">Hyperdiv并非仅仅是一个简单的UI库，它是一个完整的框架，集成了诸多功能，极大地简化了Web UI开发流程。它巧妙地结合了Python的简洁性和强大的表达能力，以及现代Web技术的优势，提供了一种全新的开发范式。告别复杂的构建工具、冗余的配置和繁琐的语法，Hyperdiv让你专注于应用逻辑，而非底层细节。</span>
</p>
<p>
	<span style="font-size:16px;">即时模式语法：极致的开发效率</span>
</p>
<p>
	<span style="font-size:16px;">Hyperdiv的核心在于其简洁的即时模式(Immediate Mode)语法。这意味着UI的更新会立即反映在浏览器中，你无需费力管理虚拟DOM或进行复杂的事件绑定。编写代码就像在画布上作画一样流畅自然，所见即所得。这种直观的开发方式极大地提升了开发效率，缩短了开发周期，让你体验到一种前所未有的开发快感。</span>
</p>
<p>
	<span style="font-size:16px;">丰富的内置组件和扩展支持：开箱即用，满足各种需求</span>
</p>
<p>
	<span style="font-size:16px;">Hyperdiv内置了丰富的组件库，涵盖了各种常见的</span><span style="font-size:16px;">UI元素</span><span style="font-size:16px;">，例如按钮、文本框、表格等。它还集成了流行的Shoelace组件系统，为你的应用提供更现代化和美观的UI体验。此外，Hyperdiv还支持Markdown渲染（基于Mistune）、</span><span style="font-size:16px;">Chart.js</span><span style="font-size:16px;">图表绘制以及浏览器本地存储的读写操作，满足你各种各样的开发需求。更令人兴奋的是，Hyperdiv的生态还在不断扩展，未来将支持更多第三方插件，进一步增强其功能和灵活性。</span>
</p>
<p>
	<span style="font-size:16px;">强大的Python表单验证：告别繁琐的JavaScript验证</span>
</p>
<p>
	<span style="font-size:16px;">在传统的Web开发中，表单验证通常需要编写大量的JavaScript代码。而Hyperdiv巧妙地将表单验证逻辑直接集成到Python中，让你用熟悉的Python语法轻松实现各种复杂的验证规则。这不仅简化了代码，还提升了代码的可读性和可维护性。告别JavaScript的验证陷阱，让你的表单验证更加可靠和高效。</span>
</p>
<p>
	<span style="font-size:16px;">极简的工具链：专注于开发，而非配置</span>
</p>
<p>
	<span style="font-size:16px;">Hyperdiv极简的工具链是其一大亮点。它无需复杂的构建流程，也不需要你配置各种工具。你只需安装Hyperdiv，然后就可以开始编写代码，立即体验其强大的功能。这不仅节省了你的时间，还降低了学习成本，让你可以更快地上手并投入到实际开发中。</span>
</p>
<p>
	<span style="font-size:16px;">丰富的示例和文档：快速上手，轻松掌握</span>
</p>
<p>
	<span style="font-size:16px;">Hyperdiv提供了丰富的示例应用和详细的文档，方便你快速入门和学习。文档本身也是使用Hyperdiv构建的，这充分展示了其强大的功能和易用性。你还可以参考提供的Demo Apps，学习如何使用Hyperdiv构建各种类型的应用。</span>
</p>
<p>
	<span style="font-size:16px;">总结</span>
</p>
<p>
	<span style="font-size:16px;">Hyperdiv是一个突破性的Python Web UI框架，它以其简洁的即时模式语法、丰富的内置组件、强大的功能和极简的工具链，彻底改变了Web UI开发的体验。如果你厌倦了JavaScript的复杂性和冗余性，如果你渴望一种更快速、更便捷、更高效的Web UI开发方式，那么Hyperdiv将是你最佳的选择！</span>
</p>
<p>
	<span style="font-size:16px;"><span style="color:#454545;font-size:16px;background-color:#FFFFFF;font-family:Verdana, &quot;">以上就是“</span><span style="color:#454545;font-size:16px;background-color:#FFFFFF;font-family:Verdana, &quot;">Hyperdiv：告别繁琐！用Python飞速构建炫酷Web UI</span><span style="color:#454545;font-size:16px;background-color:#FFFFFF;font-family:Verdana, &quot;">”</span><span style="color:#454545;font-size:16px;background-color:#FFFFFF;font-family:Verdana, &quot;">的详细内容，想要了解更多</span><a href="http://www.phpxs.com/" target="_blank">Python</a><a href="http://www.phpxs.com/" target="_blank">教程</a><span style="color:#454545;font-size:16px;background-color:#FFFFFF;font-family:Verdana, &quot;">欢迎持续关注</span><a href="http://www.phpxs.com/" target="_blank">编程</a><span style="color:#454545;font-size:16px;background-color:#FFFFFF;font-family:Verdana, &quot;">学习网。</span><br />
</span>
</p>]]></description>
<pubDate>2026-05-16</pubDate>
</item>
<item>
<title><![CDATA[H.264/AVC专利许可费用暴涨 从原先每年10万美元涨价到最高450万美元]]></title>
<link>http://www.phpxs.com/post/14182/</link>
<description><![CDATA[<p>
	<img src="http://www.phpxs.com/uploads/202605/15/22b1b151b1ca4fb6b1736edbd7031ae0.png" alt="" /> 
</p>
<p>
	<br />
</p>
<p>
	<span style="font-size:16px;">近期负责管理 H.264/AVC 专利池的版权机构 Via Licensing Alliance (Via LA) 悄然调整专利许可费用，将原先每年 10 万美元的固定专利许可费改成阶梯式收费，如果是大型平台每年可能要支付最高 450 万美元的专利许可费用。</span> 
</p>
<p>
	<span style="font-size:16px;">这项授权价格调整仅适用于此前从未获得过许可且计划在 2026 年或之后申请 H.264/AVC 专利许可的客户，至少在 2025 年年底前已经申请许可的客户可以继续以原先的价格继续获得许可。</span> 
</p>
<p>
	<span style="font-size:16px;">此次 H.264/AVC 专利许可价格大幅度增加可能也受 H.265/HEVC 涨价影响，后者早前也大幅度提高专利许可费用并在全球范围内引发争议，许可费用的变更甚至导致华硕和微星的</span><span style="font-size:16px;">&nbsp;</span><span style="font-size:16px;">笔记本电脑</span><span style="font-size:16px;">在德国被禁售。</span> 
</p>
<div class="google-auto-placed ap_container" style="margin:0px;padding:0px;border:0px;">
	<div id="aswift_7_host" style="margin:0px;padding:0px;border:none;">
		<div class="google-aiuf" style="margin:0px;padding:0px;border:0px;">
			<div class="goog-rentries" style="border:initial !important;margin:initial !important;padding:initial !important;text-align:inherit !important;vertical-align:initial !important;">
				<div style="border:initial !important;margin:initial !important;padding:initial !important;text-align:inherit !important;vertical-align:initial !important;">
				</div>
			</div>
		</div>
	</div>
</div>
<p>
	<span style="font-size:16px;">专利池管理机构 Via LA 表示，该机构已经在 2025 年联系多家未获得授权的相关公司，希望这些公司在之前的许可条款下签署许可协议，但当时 Via LA 并未发布任何新闻稿或公开声明，而是单独私下联系。</span> 
</p>
<p>
	<span style="font-size:16px;">而现在任何没有在 2025 年与 Via LA 达成专利授权协议的流媒体公司，都需要按照最新的阶梯价签署协议，新的收费标准主要根据平台类型和规模进行计费，最高收费可能高达每年 450 万美元。</span> 
</p>
<p>
	<br />
</p>
<div class="message-box message-style module-radius error" style="margin:0px 0px 20px;padding:20px;border:0px;">
	<p>
		<span style="font-size:16px;">新的阶梯式专利许可费用如下：</span> 
	</p>
</div>
<ul>
	<li>
		<span style="font-size:16px;">经 Via LA 认定的小型或新兴平台仍然可以享受每年 10 万美元的许可费用。</span> 
	</li>
	<li>
		<span style="font-size:16px;">日活跃用户超过 1 亿的顶级平台每年需缴纳 450 万美元。</span> 
	</li>
	<li>
		<span style="font-size:16px;">月活跃用户超过 10 亿的顶级社交媒体平台每年需缴纳 450 万美元。</span> 
	</li>
	<li>
		<span style="font-size:16px;">月活跃用户超过 1500 万的顶级云游戏平台每年需缴纳 450 万美元。</span> 
	</li>
	<li>
		<span style="font-size:16px;">其他二级和三级平台 (根据用户规模划分) 的许可费用分别是每年 337.5 万美元和 225 万美元。</span> 
	</li>
</ul>
<p>
	<span style="font-size:16px;">H.264/AVC 是目前互联网上使用率最高的视频编解码器，几乎所有流媒体平台、硬件编码器和浏览器都将 H.264 作为基准或备用方案，该编解码器的不少专利已经过期，但专利过期并不意味着许可义务会自动解除。</span> 
</p>
<p>
	<span style="font-size:16px;">专利许可律师吉姆哈兰称，在出现专利许可纠纷时，法院在评估公平、合理和非歧视性费率时，仍然会考虑有效专利的效力和剩余期限，而不仅仅是专利数量问题。显然平台也不能脱离有效专利仅使用那些过期专利。</span> 
</p>
<p>
	<span style="font-size:16px;">Via LA 的专利费用重组也在加剧编解码器许可成本的整体上涨，Avanci 的视频版权池和 Access Advance 的视频分发专利版权池目前都在向平台收取 HEVC、VVC、VP9 和 AV1 等编解码器的使用费。</span> 
</p>
<div class="google-auto-placed ap_container" style="margin:0px;padding:0px;border:0px;">
	<div id="aswift_8_host" style="margin:0px;padding:0px;border:none;">
		<div class="google-aiuf" style="margin:0px;padding:0px;border:0px;">
			<div class="goog-rentries" style="border:initial !important;margin:initial !important;padding:initial !important;text-align:inherit !important;vertical-align:initial !important;">
				<div style="border:initial !important;margin:initial !important;padding:initial !important;text-align:inherit !important;vertical-align:initial !important;">
				</div>
			</div>
		</div>
	</div>
</div>
<p>
	<span style="font-size:16px;">Access Advance 的费率上限约为每年 6300 万美元，而 Avanci 公布的费率为平台收入的 1.6% 或 2.0%，或按照每用户每月 0.12~0.15 美元收费，这些版权池加起来可能会让大型平台每年的专利许可费用高达数亿美元。</span> 
</p>
<p>
	<span style="font-size:16px;">戴尔和惠普在 2025 年时将部分 PC 的 H.265 解码功能禁用</span><span style="font-size:16px;">，禁用原因就是因为需要缴纳的专利费太高，问题在于禁用后无法使用硬件解码会导致解码效率大幅度下降，同时也会显著增加耗电量。</span> 
</p>
<p>
	<span style="font-size:16px;">所以这种专利许可费用的上涨可能会给全行业带来各种问题，至少对终端用户来说，要么购买硬件的成本上涨，要么就只能使用性能较差的其他替代方案。</span> 
</p>
<span style="font-size:16px;"><span style="color:#454545;font-size:16px;background-color:#FFFFFF;font-family:Verdana, &quot;">以上就是“</span><span style="color:#454545;font-size:16px;background-color:#FFFFFF;font-family:Verdana, &quot;">H.264/AVC专利许可费用暴涨 从原先每年10万美元涨价到最高450万美元</span><span style="color:#454545;font-size:16px;background-color:#FFFFFF;font-family:Verdana, &quot;">”</span><span style="color:#454545;font-size:16px;background-color:#FFFFFF;font-family:Verdana, &quot;">的详细内容，想要了解更多</span><a href="http://www.phpxs.com/" target="_blank">Python</a><a href="http://www.phpxs.com/" target="_blank">教程</a><span style="color:#454545;font-size:16px;background-color:#FFFFFF;font-family:Verdana, &quot;">欢迎持续关注</span><a href="http://www.phpxs.com/" target="_blank">编程</a><span style="color:#454545;font-size:16px;background-color:#FFFFFF;font-family:Verdana, &quot;">学习网。</span></span> 
<p>
	<br />
</p>]]></description>
<pubDate>2026-05-15</pubDate>
</item>
<item>
<title><![CDATA[微软开始提醒用户Microsoft Publisher将在10月关闭 用户需做好迁移准备]]></title>
<link>http://www.phpxs.com/post/14181/</link>
<description><![CDATA[<p>
	<img src="http://www.phpxs.com/uploads/202605/15/ae248414823333a8fa7ecf2c06840fb9.png" alt="" />
</p>
<p>
	<p>
		<span style="font-size:16px;">微软已经在 2024 年年初宣布将关闭用于排版和印刷使用的办公套件 Microsoft Publisher</span><span style="font-size:16px;">，该软件通常随着 Microsoft Office 安装在系统里，但大多数用户可能从未使用过这款软件。</span>
	</p>
	<p>
		<span style="font-size:16px;">每年可能会打开几次 Microsoft Publisher，而且每次都是意外打开：因为我们在 Linux 上使用的 SSH 公钥有时候会保存在本地，公钥使用后缀.pub，在资源管理器里默认就会以 Publisher 关联。</span>
	</p>
	<p>
		<span style="font-size:16px;">这导致我们更新 Office 后都需要修改 PUB 公钥的打开方式，正常情况下主要使用 Visual Studio Code 打开以复制公钥内容，如果使用 Publisher 是无法打开的，打开时直接报错。</span>
	</p>
	<p>
		<span style="font-size:16px;">微软决定关闭 Publisher 可能是因为该软件的使用率太低，而且微软也不想要继续维护如此多的产品线，微软建议用户转向 Word、PowerPoint 以及 Designer 等替代方案。</span>
	</p>
	<p>
		<span style="font-size:16px;">根据微软的计划时间表，Microsoft Publisher 将在 2026 年 10 月关闭，现在微软已经开始在 Microsoft 365 账户中弹出警告消息，提醒用户很快就会无法使用 Publisher。</span>
	</p>
	<p>
		<span style="font-size:16px;">这则消息也引起部分使用该软件的用户的不满，使用 Publisher 的基本都是老用户，这些用户已经习惯性使用 Publisher 的布局控制、对齐工具以及以打印为中心的功能。</span>
	</p>
	<p>
		<span style="font-size:16px;">在学校、图书馆以及小型办公室中，Publisher 关闭后会影响客户现有的工作流，切换到其他替代</span><span style="font-size:16px;">&nbsp;</span><span style="font-size:16px;">软件</span><span style="font-size:16px;">需要时间并且可能要重新规划工作流，这些都是需要更多时间和增加成本。</span>
	</p>
	<p>
		<span style="font-size:16px;">因此这些用户希望在微软关闭 Publisher 后仍然可以继续使用此软件，哪怕是没有必要的功能和安全更新也无所谓，但微软暂时还未透露是否有这方面的支持计划。</span>
	</p>
	<p>
		<span style="color:#454545;font-size:16px;background-color:#FFFFFF;font-family:Verdana, &quot;">以上就是“</span><span style="color:#454545;font-size:16px;background-color:#FFFFFF;font-family:Verdana, &quot;">微软开始提醒用户Microsoft Publisher将在10月关闭 用户需做好迁移准备</span><span style="color:#454545;font-size:16px;background-color:#FFFFFF;font-family:Verdana, &quot;">”</span><span style="color:#454545;font-size:16px;background-color:#FFFFFF;font-family:Verdana, &quot;">的详细内容，想要了解更多</span><a href="http://www.phpxs.com/" target="_blank">Python</a><a href="http://www.phpxs.com/" target="_blank">教程</a><span style="color:#454545;font-size:16px;background-color:#FFFFFF;font-family:Verdana, &quot;">欢迎持续关注</span><a href="http://www.phpxs.com/" target="_blank">编程</a><span style="color:#454545;font-size:16px;background-color:#FFFFFF;font-family:Verdana, &quot;">学习网。</span>
	</p>
</p>]]></description>
<pubDate>2026-05-15</pubDate>
</item>
<item>
<title><![CDATA[pybind11：让C++和Python无缝连接的利器]]></title>
<link>http://www.phpxs.com/post/14180/</link>
<description><![CDATA[<p>
	<img src="http://www.phpxs.com/uploads/202605/15/326f028fbfb14d3fed2f83b2285f58c2.png" alt="" />
</p>
<p>
	<p>
		<span style="font-size:16px;">今天我想和大家聊聊一个非常酷的库——</span><span style="font-size:16px;">pybind11</span><span style="font-size:16px;">。如果你曾经想把C++的强大功能带到Python中，或者反过来，那这个库绝对值得你关注。它让两者之间的交互变得简单而高效，下面让我们深入了解一下吧！</span>
	</p>
	<p>
		<span style="font-size:16px;">什么是</span><span style="font-size:16px;">pybind11</span><span style="font-size:16px;">？</span>
	</p>
	<p>
		<span style="font-size:16px;">简单来说，pybind11是一个轻量级的头文件库，它的主要功能就是让C++类型在Python中可用，反之亦然。想象一下，你有一堆用C++写的高效算法，怎么能快速地把它们暴露给Python用户呢？这就是pybind11发挥作用的地方。它的目标是减少传统扩展模块中冗余的样板代码，简化绑定生成的过程。</span>
	</p>
	<p>
		<span style="font-size:16px;">为什么选择pybind11而不是Boost.Python？</span>
	</p>
	<p>
		<span style="font-size:16px;">说到这里，很多人可能会问，Boost.Python不也能做吗？没错，但Boost有一个大问题：它庞大的体积和复杂性让很多开发者望而却步。Boost为了兼容各种老旧的编译器，使用了很多晦涩的模板技巧，这让它变得极其笨重。而pybind11则是一个精简版的Boost.Python，只包含那些用于绑定生成的核心功能，代码量大约只有4K行！这让它在使用和维护上都简单了许多。</span>
	</p>
	<p>
		<span style="font-size:16px;">核心功能一览</span>
	</p>
	<p>
		<span style="font-size:16px;">pybind11能做到的事情可多了，以下是一些核心功能：</span>
	</p>
	<ul class="list-paddingleft-1">
		<li>
			<span style="font-size:16px;">•&nbsp;</span><span style="font-size:16px;">自定义数据结构的传递</span><span style="font-size:16px;">：支持按值、引用或指针传递自定义类型。</span>
		</li>
		<li>
			<span style="font-size:16px;">•&nbsp;</span><span style="font-size:16px;">实例方法与静态方法</span><span style="font-size:16px;">：可以轻松地在Python中调用这些方法。</span>
		</li>
		<li>
			<span style="font-size:16px;">•&nbsp;</span><span style="font-size:16px;">函数重载</span><span style="font-size:16px;">：能够处理多个同名函数。</span>
		</li>
		<li>
			<span style="font-size:16px;">•&nbsp;</span><span style="font-size:16px;">异常处理</span><span style="font-size:16px;">：支持自定义异常类型。</span>
		</li>
		<li>
			<span style="font-size:16px;">•&nbsp;</span><span style="font-size:16px;">回调函数</span><span style="font-size:16px;">：可以将C++函数作为回调传递给Python。</span>
		</li>
		<li>
			<span style="font-size:16px;">•&nbsp;</span><span style="font-size:16px;">与</span><span style="font-size:16px;">STL</span><span style="font-size:16px;">和智能指针的兼容</span><span style="font-size:16px;">：比如说，</span><span style="font-size:16px;">std::shared_ptr</span><span style="font-size:16px;">&nbsp;就可以直接使用。</span>
		</li>
		<li>
			<span style="font-size:16px;">•&nbsp;</span><span style="font-size:16px;">内存管理</span><span style="font-size:16px;">：能够正确处理引用计数。</span>
		</li>
	</ul>
	<p>
		<span style="font-size:16px;">此外，pybind11还支持NumPy，意味着你可以在Python中使用C++的高效计算。</span>
	</p>
	<p>
		<span style="font-size:16px;">额外的好处</span>
	</p>
	<p>
		<span style="font-size:16px;">除了这些核心功能，pybind11还提供了一些额外的好处：</span>
	</p>
	<ul class="list-paddingleft-1">
		<li>
			<span style="font-size:16px;">•&nbsp;</span><span style="font-size:16px;">支持多种Python实现</span><span style="font-size:16px;">：无论是</span><span style="font-size:16px;">CPython</span><span style="font-size:16px;">、PyPy还是GraalPy，pybind11都能兼容。</span>
		</li>
		<li>
			<span style="font-size:16px;">•&nbsp;</span><span style="font-size:16px;">高效的数据传输</span><span style="font-size:16px;">：利用C++11的移动语义，数据类型的传输变得更加高效。</span>
		</li>
		<li>
			<span style="font-size:16px;">•&nbsp;</span><span style="font-size:16px;">自动矢量化</span><span style="font-size:16px;">：函数可以透明地应用于NumPy数组的所有元素，极大地提高了性能。</span>
		</li>
		<li>
			<span style="font-size:16px;">•&nbsp;</span><span style="font-size:16px;">小巧的二进制文件</span><span style="font-size:16px;">：生成的绑定文件通常比Boost.Python小至少2倍，这在使用</span><span style="font-size:16px;">PyRosetta</span><span style="font-size:16px;">等大型项目时尤为明显。</span>
		</li>
	</ul>
	<p>
		<span style="font-size:16px;">支持的编译器</span>
	</p>
	<p>
		<span style="font-size:16px;">pybind11支持多个编译器，包括Clang、GCC、Microsoft Visual Studio等，兼容性非常好。只要你的编译器在支持列表中，几乎都可以顺利使用这个库。</span>
	</p>
	<p>
		<span style="font-size:16px;">总结</span>
	</p>
	<p>
		<span style="font-size:16px;">总的来说，pybind11是一个强大的工具，能够让C++和Python之间的交互变得简单而直观。无论你是要将已有的C++代码库暴露给Python，还是想利用Python的灵活性来扩展你的C++程序，pybind11都能为你提供极大的便利。</span>
	</p>
<span style="font-size:16px;"><span style="color:#454545;font-size:16px;background-color:#FFFFFF;font-family:Verdana, &quot;">以上就是“</span><span style="color:#454545;font-size:16px;background-color:#FFFFFF;font-family:Verdana, &quot;">pybind11：让C++和Python无缝连接的利器</span><span style="color:#454545;font-size:16px;background-color:#FFFFFF;font-family:Verdana, &quot;">”</span><span style="color:#454545;font-size:16px;background-color:#FFFFFF;font-family:Verdana, &quot;">的详细内容，想要了解更多</span><a href="http://www.phpxs.com/" target="_blank">Python</a><a href="http://www.phpxs.com/" target="_blank">教程</a><span style="color:#454545;font-size:16px;background-color:#FFFFFF;font-family:Verdana, &quot;">欢迎持续关注</span><a href="http://www.phpxs.com/" target="_blank">编程</a><span style="color:#454545;font-size:16px;background-color:#FFFFFF;font-family:Verdana, &quot;">学习网。</span></span>
</p>
<p>
	<br />
</p>]]></description>
<pubDate>2026-05-15</pubDate>
</item>
<item>
<title><![CDATA[PocketPy：一个轻量级、用C11写的、高性能的Python 3.x 解释器]]></title>
<link>http://www.phpxs.com/post/14179/</link>
<description><![CDATA[<p>
	<span style="font-size:16px;"><img src="http://www.phpxs.com/uploads/202605/15/52801bb8cab68991ab1064b4811a7a6e.png" alt="" /><br />
</span>
</p>
<p>
	<span style="font-size:16px;">今天要给大家隆重介绍一个神器——PocketPy！它是一个轻量级、高性能的Python 3.x 解释器，用C11写的，简直是游戏脚本开发者的福音！想用Python写游戏脚本，又怕性能拖后腿？PocketPy来拯救你！</span>
</p>
<p>
	<span style="font-size:16px;">什么是PocketPy？</span>
</p>
<p>
	<span style="font-size:16px;">简单来说，PocketPy就是个能嵌入你C/C++项目的Python解释器，它和Lua很像，但语法更优雅，功能更强大，性能还杠杠的！最关键的是，它除了C标准库外几乎没啥依赖，集成到你的项目里，so easy！而且，你可以通过</span><span style="font-size:16px;">C-API</span><span style="font-size:16px;">或pybind11接口轻松编写Python绑定，简直不要太方便！</span>
</p>
<p>
	<span style="font-size:16px;">PocketPy能干啥？</span>
</p>
<p>
	<span style="font-size:16px;">别看它小，PocketPy可一点都不含糊！它支持Python的大部分特性，比如：if/else、for/while循环、函数定义、类继承、列表、字典、元组、F-String、异常处理等等，简直就是Python的迷你版！就算你想用生成器、装饰器、类型注解这些高级特性，它也照单全收！这对于游戏脚本开发来说，已经足够了！</span>
</p>
<p>
	<span style="font-size:16px;">怎么用PocketPy？</span>
</p>
<p>
	<span style="font-size:16px;">这玩意儿用起来贼简单！主要有两种方式：</span>
</p>
<p>
	<span style="font-size:16px;">1. 直接用头文件：</span>
</p>
<p>
	<span style="font-size:16px;">从GitHub Release页面下载</span><span style="font-size:16px;">pocketpy.h</span><span style="font-size:16px;">和</span><span style="font-size:16px;">pocketpy.c</span><span style="font-size:16px;">，然后在你的项目里</span><span style="font-size:16px;">#include</span><span style="font-size:16px;">就行了，是不是很简单粗暴？</span>
</p>
<p>
	<span style="font-size:16px;">2. 用CMake：</span>
</p>
<p>
	<span style="font-size:16px;">如果你用CMake管理项目，那就更方便了！把PocketPy仓库作为子模块添加到你的项目，然后在</span><span style="font-size:16px;">CMakeLists.txt</span><span style="font-size:16px;">里加几行代码就搞定了。具体的，你去看GitHub上的文档，写的很清楚，我就不啰嗦了。</span>
</p>
<p>
	<span style="font-size:16px;">编译那些事儿：</span>
</p>
<p>
	<span style="font-size:16px;">编译PocketPy的时候，要注意几个flag：</span><span style="font-size:16px;">--std=c11</span><span style="font-size:16px;">必须设置，MSVC编译器还需要</span><span style="font-size:16px;">/utf-8</span><span style="font-size:16px;">和</span><span style="font-size:16px;">/experimental:c11atomics</span><span style="font-size:16px;">，release版本记得定义</span><span style="font-size:16px;">NDEBUG</span><span style="font-size:16px;">宏，不然性能会很差。如果想生成一个单文件版本，可以运行</span><span style="font-size:16px;">python amalgamate.py</span><span style="font-size:16px;">。</span>
</p>
<p>
	<span style="font-size:16px;">PocketPy的优缺点：</span>
</p>
<p>
	<span style="font-size:16px;">优点：</span>
</p>
<ul class="list-paddingleft-1">
	<li>
		<span style="font-size:16px;">•&nbsp;</span><span style="font-size:16px;">轻量级：</span><span style="font-size:16px;">&nbsp;依赖少，体积小，集成方便。</span>
	</li>
	<li>
		<span style="font-size:16px;">•&nbsp;</span><span style="font-size:16px;">高性能：</span><span style="font-size:16px;">&nbsp;性能能和CPython 3.9媲美，甩Lua几条街！</span>
	</li>
	<li>
		<span style="font-size:16px;">•&nbsp;</span><span style="font-size:16px;">易用性：</span><span style="font-size:16px;">&nbsp;语法简洁优雅，上手简单，开发效率高。</span>
	</li>
	<li>
		<span style="font-size:16px;">•&nbsp;</span><span style="font-size:16px;">跨平台：</span><span style="font-size:16px;">&nbsp;支持Windows、Linux、macOS、Android、iOS、</span><span style="font-size:16px;">Emscripten</span><span style="font-size:16px;">等等主流平台，兼容性超强。</span>
	</li>
	<li>
		<span style="font-size:16px;">•&nbsp;</span><span style="font-size:16px;">功能强大：</span><span style="font-size:16px;">&nbsp;支持Python的大部分特性，满足大多数游戏脚本开发需求。</span>
	</li>
</ul>
<p>
	<span style="font-size:16px;">缺点：</span>
</p>
<ul class="list-paddingleft-1">
	<li>
		<span style="font-size:16px;">•&nbsp;</span><span style="font-size:16px;">文档相对较少：</span><span style="font-size:16px;">&nbsp;虽然官网和GitHub上有文档，但是相对来说还不是特别完善，需要自己多探索。</span>
	</li>
	<li>
		<span style="font-size:16px;">•&nbsp;</span><span style="font-size:16px;">社区规模较小：</span><span style="font-size:16px;">&nbsp;毕竟是新项目，社区规模还不够大，遇到问题可能需要自己解决，或者去GitHub上提issue。</span>
	</li>
</ul>
<p>
	<span style="font-size:16px;">性能测试结果：</span>
</p>
<p>
	<span style="font-size:16px;">在Intel i5-12400F处理器上进行的素数测试显示，PocketPy的性能与C++接近，远超Lua和CPython，这足以说明PocketPy的性能优势。具体的测试结果，可以去官网查看。</span>
</p>
<p>
	<span style="font-size:16px;">总结：</span>
</p>
<p>
	<span style="font-size:16px;">PocketPy是一个非常有潜力的Python嵌入式解释器，它轻量、高性能、易用，非常适合游戏脚本开发。虽然现在文档和社区还不够完善，但它的未来值得期待！如果你正在寻找一个高效、易用的游戏脚本解决方案，PocketPy绝对值得一试！ 赶紧去GitHub上试试吧！</span>
</p>
<p>
	<span style="font-size:16px;"><span style="color:#454545;font-size:16px;background-color:#FFFFFF;font-family:Verdana, &quot;">以上就是“</span><span style="color:#454545;font-size:16px;background-color:#FFFFFF;font-family:Verdana, &quot;">PocketPy：一个轻量级、用C11写的、高性能的Python 3.x 解释器</span><span style="color:#454545;font-size:16px;background-color:#FFFFFF;font-family:Verdana, &quot;">”</span><span style="color:#454545;font-size:16px;background-color:#FFFFFF;font-family:Verdana, &quot;">的详细内容，想要了解更多</span><a href="http://www.phpxs.com/" target="_blank">Python</a><a href="http://www.phpxs.com/" target="_blank">教程</a><span style="color:#454545;font-size:16px;background-color:#FFFFFF;font-family:Verdana, &quot;">欢迎持续关注</span><a href="http://www.phpxs.com/" target="_blank">编程</a><span style="color:#454545;font-size:16px;background-color:#FFFFFF;font-family:Verdana, &quot;">学习网。</span><br />
</span>
</p>]]></description>
<pubDate>2026-05-15</pubDate>
</item>
<item>
<title><![CDATA[三星继续提高内存产品价格：一季度价格翻倍后 二季度再涨价30%]]></title>
<link>http://www.phpxs.com/post/14178/</link>
<description><![CDATA[<p>
	<img src="http://www.phpxs.com/uploads/202605/14/7d258316a55ec0f8f4fd0156f9938eb3.png" alt="" />
</p>
<p>
	<p>
		<span style="font-size:16px;">尽管业界经常说人工智能泡沫和内存产品价格将要回调，不过从上游供应链企业来看，内存制造商对这种说法不以为意，因为三星还在继续提高适用于各种平台的内存价格。</span>
	</p>
	<p>
		<span style="font-size:16px;">三星已经在 2026Q1 将内存产品价格翻倍 (涨幅 100%)，现在三星继续提高内存产品价格：在 2026Q1 的价格基础上再涨价 30%，涵盖适用于人工智能的 HBM 高带宽内存、服务器内存、PC 内存以及智能</span><span style="font-size:16px;">&nbsp;</span><span style="font-size:16px;">手机</span><span style="font-size:16px;">使用的通用内存。</span>
	</p>
	<p>
		<span style="font-size:16px;">举个简单的例子：2025 年时三星内存条价格为 1 万韩元，2026 年 Q1 价格翻倍后到 2 万韩元，现在是在 2 万韩元的基础上涨价 30%，也就是最新价格 2.6 万韩元，较 2025 年时涨价 160%。</span>
	</p>
	<p>
		<span style="font-size:16px;">近期 DRAM 现货价格确实出现过温和下降，这种情况也引发投资者情绪剧烈波动，相关企业的股价也出现小幅度下跌，不过三星等内存制造商对报价依然比较坚挺，所以这也在继续推高内存合约价格。</span>
	</p>
	<p>
		<span style="font-size:16px;">韩国电子新闻发布消息时还强调，目前出现价格下滑的内存产品主要是 DDR4，下滑原因更多源于渠道库存过高被恐慌性清仓，终端系统的需求依然非常高，HBM 系列内存需求量更高。</span>
	</p>
	<p>
		<span style="font-size:16px;">而三星提高价格势必也会影响其他内存制造商，也就是 SK 海力士和美光等可能也会跟随三星提高合约报价，这可能会继续引发高性能内存价格的螺旋式上涨。</span>
	</p>
	<p>
		<span style="font-size:16px;">内存价格高涨已经给全行业造成影响，例如市场分析机构预测今年智能手机和 PC 出货量都将出现大幅度下跌，因为</span><span style="font-size:16px;">&nbsp;</span><span style="font-size:16px;">内存</span><span style="font-size:16px;">价格太高导致智能手机和 PC 产品也要涨价，这就会给销量造成不利影响。</span>
	</p>
	<p>
		<span style="font-size:16px;">智能手机厂商的利润也在被内存拖累，以入门级机型为例，DRAM 成本已经占整机物料清单的 35%，NAND 闪存占 19%，两项合计占比高达 54%，OEM 除了提价基本没有解决方案。</span>
	</p>
<span style="font-size:16px;"><span style="color:#454545;font-size:16px;background-color:#FFFFFF;font-family:Verdana, &quot;">以上就是“</span><span style="color:#454545;font-size:16px;background-color:#FFFFFF;font-family:Verdana, &quot;">三星继续提高内存产品价格：一季度价格翻倍后 二季度再涨价30%</span><span style="color:#454545;font-size:16px;background-color:#FFFFFF;font-family:Verdana, &quot;">”</span><span style="color:#454545;font-size:16px;background-color:#FFFFFF;font-family:Verdana, &quot;">的详细内容，想要了解更多</span><a href="http://www.phpxs.com/" target="_blank">Python</a><a href="http://www.phpxs.com/" target="_blank">教程</a><span style="color:#454545;font-size:16px;background-color:#FFFFFF;font-family:Verdana, &quot;">欢迎持续关注</span><a href="http://www.phpxs.com/" target="_blank">编程</a><span style="color:#454545;font-size:16px;background-color:#FFFFFF;font-family:Verdana, &quot;">学习网。</span></span>
</p>]]></description>
<pubDate>2026-05-14</pubDate>
</item>
<item>
<title><![CDATA[NASA经过审查后允许宇航员携带iPhone 17 Pro Max进入太空 但禁止联网和蓝牙]]></title>
<link>http://www.phpxs.com/post/14177/</link>
<description><![CDATA[<p>
	<img src="http://www.phpxs.com/uploads/202605/14/318b4f70424e1711ed3156e8077cbdd0.png" alt="" />
</p>
<p>
	<div class="content-post" style="margin:0px 0px 20px;padding:0px;border:0px;text-align:justify;">
		<p>
			<span style="font-size:16px;">今年早些时候 NASA 就证实阿尔忒弥斯 2 号任务将允许宇航员携带最新款智能手机飞行，现在阿尔忒弥斯 2 号的猎户座飞船已经在绕月飞行，而且宇航员们也确实带上了自己的智能手机 (实际上 NASA 配发的)。</span>
		</p>
		<p>
			<span style="font-size:16px;">具体来说宇航员们可以携带经过审查的 iPhone 17 Pro Max 机型，但这些智能手机都被禁止联网和开启蓝牙，所以宇航员们主要用手机来拍摄照片和视频，其他需要联网使用的功能都无法使用。</span>
		</p>
		<p>
			<span style="font-size:16px;">苹果并未参与 NASA 批准这些智能手机用于阿尔忒弥斯 2 号任务的审查流程，不过得知消息后，苹果也强调这说明 iPhone 完全符合在轨以及太空长期使用的严苛要求。</span>
		</p>
		<p>
			<span style="font-size:16px;">不过 NASA 的实际审查流程还是非常麻烦的：</span>
		</p>
		<div class="google-anno-skip google-anno-sc" style="border:initial !important;margin:initial !important;padding:initial !important;text-align:inherit !important;vertical-align:initial !important;">
			<span style="font-size:16px;">Apple iOS</span>
		</div>
		<ul>
			<li>
				<span style="font-size:16px;">第一阶段：将硬件设备提交给安全小组进行必要的安全审查。</span>
			</li>
			<li>
				<span style="font-size:16px;">第二阶段：识别硬件设备的潜在危险，包括运动部件和易碎材料 (例如玻璃)。</span>
			</li>
			<li>
				<span style="font-size:16px;">第三阶段：制定应对这些危险的方案，例如假如玻璃破裂后如何在失重环境中收集和清理碎片。</span>
			</li>
			<li>
				<span style="font-size:16px;">第四阶段：验证解决方案的可行性，经过验证后即可批准宇航员携带 iPhone 17 Pro Max。</span>
			</li>
		</ul>
		<p>
			<span style="font-size:16px;">还要考虑漂浮问题：</span>
		</p>
		<p>
			<span style="font-size:16px;">NASA 实际上还通过流程测试如何固定智能手机，因为在太空环境中地球重力的影响微乎其微，这种情况下物体会在空间中漂浮，所以还需要考虑如何固定智能</span><span style="font-size:16px;">&nbsp;</span><span style="font-size:16px;">手机</span><span style="font-size:16px;">防止乱跑。</span>
		</p>
		<p>
			<span style="font-size:16px;">NASA 曾讨论过用魔术贴将智能手机固定到猎户座飞船的舱体上，不过在最终发射时，至少有一台 iPhone 17 Pro Max 被塞到宇航服的口袋里，然后通过拉链将其完全固定。</span>
		</p>
		<p>
			<span style="font-size:16px;">最后仅靠手机拍照和录视频还是不够的，NASA 还为宇航员配备四台 GoPro Hero 11 相机和两台尼康 D5，至少主要照片还是靠尼康相机拍摄，但宇航员们也可以尝试使用</span><span style="font-size:16px;">&nbsp;</span><span style="font-size:16px;">智能手机</span><span style="font-size:16px;">拍摄。</span>
		</p>
		<div class="google-anno-skip google-anno-sc" style="border:initial !important;margin:initial !important;padding:initial !important;text-align:inherit !important;vertical-align:initial !important;">
			<span style="color:#454545;font-size:16px;background-color:#FFFFFF;font-family:Verdana, &quot;">以上就是“</span><span style="color:#454545;font-size:16px;background-color:#FFFFFF;font-family:Verdana, &quot;">NASA经过审查后允许宇航员携带iPhone 17 Pro Max进入太空 但禁止联网和蓝牙</span><span style="color:#454545;font-size:16px;background-color:#FFFFFF;font-family:Verdana, &quot;">”</span><span style="color:#454545;font-size:16px;background-color:#FFFFFF;font-family:Verdana, &quot;">的详细内容，想要了解更多</span><a href="http://www.phpxs.com/" target="_blank">Python</a><a href="http://www.phpxs.com/" target="_blank">教程</a><span style="color:#454545;font-size:16px;background-color:#FFFFFF;font-family:Verdana, &quot;">欢迎持续关注</span><a href="http://www.phpxs.com/" target="_blank">编程</a><span style="color:#454545;font-size:16px;background-color:#FFFFFF;font-family:Verdana, &quot;">学习网。</span>
		</div>
	</div>
</p>]]></description>
<pubDate>2026-05-14</pubDate>
</item>
<item>
<title><![CDATA[微信传大文件被限制？用 python 秒变局域网云盘]]></title>
<link>http://www.phpxs.com/post/14176/</link>
<description><![CDATA[<p>
	<p class="MsoNormal">
		<span><img src="http://www.phpxs.com/uploads/202605/14/e6d202734017c8bab5b77366daa32120.png" alt="" /><br />
</span>
	</p>
	<p class="MsoNormal">
		<span style="font-size:16px;">今天下午，刚准备下班，坐我对面的剪辑师同事突然绝望地向我求助：</span><span style="font-size:16px;">“</span><span style="font-size:16px;">法哥，你昨天帮我备份的那个 </span><span style="font-size:16px;">40GB </span><span style="font-size:16px;">的原始素材包，赶紧发我一份吧，我的硬盘坏了，客户还在等着看成片！</span><span style="font-size:16px;">”</span>
	</p>
	<p class="MsoNormal">
		<span style="font-size:16px;">我瞬间倒吸一口凉气。</span><span style="font-size:16px;">40GB</span><span style="font-size:16px;">！这在赶时间的情况下简直是噩梦。</span>
	</p>
	<p class="MsoNormal">
		<span style="font-size:16px;">我拉开抽屉，翻遍了所有的</span><span style="font-size:16px;"> U </span><span style="font-size:16px;">盘，最大的只有一个可怜的 </span><span style="font-size:16px;">16G </span><span style="font-size:16px;">启动盘。 我试图用 </span><span style="font-size:16px;">Mac </span><span style="font-size:16px;">引以为傲的隔空投送（</span><span style="font-size:16px;">AirDrop</span><span style="font-size:16px;">），但在传输这种巨型文件时，进度条刚跑到 </span><span style="font-size:16px;">1/3 </span><span style="font-size:16px;">就一直转圈圈，然后直接报错中断。 打开微信或者钉钉？别闹了，超过 </span><span style="font-size:16px;">1G </span><span style="font-size:16px;">的文件直接被无情拦截。 难道我真的要花 </span><span style="font-size:16px;">2 </span><span style="font-size:16px;">个小时把它上传到某度网盘，再让他在隔壁工位花大半天时间下载下来？客户估计早就掀桌子了。</span>
	</p>
	<p class="MsoNormal">
		<span style="font-size:16px;">这太不极客了。既然我俩此时此刻连着同一个公司的千兆</span><span style="font-size:16px;"> WiFi</span><span style="font-size:16px;">（局域网），那数据就应该像在高速公路上一样，不经过任何云端的服务器绕远路，直接以极其暴力的千兆内网速度，从我的硬盘飞到他的硬盘里！</span>
	</p>
	<p class="MsoNormal">
		<span style="font-size:16px;">为了解决这个极其日常却又极其恶心的职场痛点，我向</span><span style="font-size:16px;"> AI </span><span style="font-size:16px;">发出了求救：</span><span style="font-size:16px;">“</span><span style="font-size:16px;">能不能写一段代码，让我的电脑瞬间变成一个可以供人下载网页的云盘服务器？让他自己用浏览器连过来下？</span><span style="font-size:16px;">”</span>
	</p>
	<p class="MsoNormal">
		<span style="font-size:16px;">AI </span><span style="font-size:16px;">的回答让我大跌眼镜：</span><span style="font-size:16px;">“</span><span style="font-size:16px;">如果是为了这个，连代码都不用写。</span><span style="font-size:16px;">Mac </span><span style="font-size:16px;">和大多数 </span><span style="font-size:16px;">Linux </span><span style="font-size:16px;">系统都内置了 </span><span style="font-size:16px;">Python </span><span style="font-size:16px;">环境，而 </span><span style="font-size:16px;">Python </span><span style="font-size:16px;">的肚子里，藏着一行价值连城的超级咒语。</span><span style="font-size:16px;">”</span>
	</p>
	<p class="MsoNormal">
		<span style="font-size:16px;">开启上帝模式：</span><span style="font-size:16px;">python3 -m http.server</span>
	</p>
	<p class="MsoNormal">
		<span style="font-size:16px;">这行魔法的底层逻辑，就是强行调用</span><span style="font-size:16px;"> Python </span><span style="font-size:16px;">内部自带的一个极其微型的网页服务模块，把你当前的文件夹，直接暴露成一个 </span><span style="font-size:16px;">HTTP </span><span style="font-size:16px;">下载站点。</span>
	</p>
	<p class="MsoNormal">
		<span style="font-size:16px;">第一步：进入弹药库</span>
	</p>
	<p class="MsoNormal">
		<span style="font-size:16px;">千万别乱开！首先，你必须在终端里进入那个装有</span><span style="font-size:16px;"> 40G </span><span style="font-size:16px;">源文件的文件夹。</span>
	</p>
	<p class="MsoNormal">
		<span style="font-size:16px;"># </span><span style="font-size:16px;">切换到放着 </span><span style="font-size:16px;">40G </span><span style="font-size:16px;">大文件的那个专属目录</span><br />
<span style="font-size:16px;">cd&nbsp;/Users/fafa/Downloads/BigProject</span>
	</p>
	<p class="MsoNormal">
		<span style="font-size:16px;">第二步：念出咒语，开启大门</span>
	</p>
	<p class="MsoNormal">
		<span style="font-size:16px;">在这个极其安全的专属目录里，敲下这行让你瞬间封神的咒语：</span>
	</p>
	<p class="MsoNormal">
		<span style="font-size:16px;"># </span><span style="font-size:16px;">启动一个最简易的 </span><span style="font-size:16px;">HTTP </span><span style="font-size:16px;">网页服务器，并让它监听 </span><span style="font-size:16px;">8000 </span><span style="font-size:16px;">端口</span><br />
<span style="font-size:16px;">python3 -m http.server 8000</span>
	</p>
	<p class="MsoNormal">
		<span style="font-size:16px;">回车后，终端里没有出现花里胡哨的界面，只冒出了一行极其低调的白字：</span><span style="font-size:16px;">Serving HTTP on :: port 8000 (http://[::]:8000/) ...</span>
	</p>
	<p class="MsoNormal">
		<span style="font-size:16px;">不要小看这行字。从这一刻起，我的电脑已经不再是一台普通的个人电脑了，它正式化身成为了一台局域网内的高速</span><span style="font-size:16px;">“</span><span style="font-size:16px;">云盘服务器</span><span style="font-size:16px;">”</span><span style="font-size:16px;">！</span>
	</p>
	<p class="MsoNormal">
		<span style="font-size:16px;">第三步：接管下载</span>
	</p>
	<p class="MsoNormal">
		<span style="font-size:16px;">接下来，我用我们在</span><span style="font-size:16px;">&nbsp;</span><span style="font-size:16px;">She</span><span style="font-size:16px;"></span><span style="font-size:16px;">ll_V37</span><span style="font-size:16px;">&nbsp;</span><span style="font-size:16px;">讲过的</span><span style="font-size:16px;">&nbsp;</span><span style="font-size:16px;">ifconfig&nbsp;</span><span style="font-size:16px;">命令，查出我自己在公司 </span><span style="font-size:16px;">WiFi </span><span style="font-size:16px;">下的内网 </span><span style="font-size:16px;">IP </span><span style="font-size:16px;">地址（假设是</span><span style="font-size:16px;">&nbsp;</span><span style="font-size:16px;">192.168.1.108</span><span style="font-size:16px;">）。</span>
	</p>
	<p class="MsoNormal">
		<span style="font-size:16px;">然后我转头对焦急的剪辑师说：</span><span style="font-size:16px;">“</span><span style="font-size:16px;">打开你的谷歌浏览器，地址栏输入</span><span style="font-size:16px;">&nbsp;</span><span style="font-size:16px;">192.168.1.108:8000&nbsp;</span><span style="font-size:16px;">，回车。</span><span style="font-size:16px;">”</span>
	</p>
</p>
<p>
	<img src="http://www.phpxs.com/uploads/202605/14/54a887253f6b16a04148f727611c7754.png" alt="" />
</p>
<p>
	<p class="MsoNormal">
		<span style="font-size:16px;">看着终端里刷出的一长串类似&nbsp;192.168.1.109 - - [10/Nov/2023 14:30:20] "GET /BigProject.zip HTTP/1.1" 200 -&nbsp;的访问和下载日志，我有一种掌控全局的暗爽。不到&nbsp;10&nbsp;分钟，40G&nbsp;巨型炸弹安稳落地。</span>
	</p>
	<p class="MsoNormal">
		<span style="font-size:16px;">极客进阶与防呆铁律：这把刀极其危险！</span>
	</p>
	<p class="MsoNormal">
		<span style="font-size:16px;">进阶变阵：老版&nbsp;Python&nbsp;怎么破？</span>
	</p>
	<p class="MsoNormal">
		<span style="font-size:16px;">如果你用的是很老的系统（比如它自带的是&nbsp;Python 2），你敲上面的命令会报错找不到模块。没关系，老版本的咒语稍微长一点，效果完全一样：python -m SimpleHTTPServer 8000</span>
	</p>
	<p class="MsoNormal">
		<span style="font-size:16px;">防呆铁律&nbsp;1：千万别当敞开大门的傻白甜！</span>
	</p>
	<p class="MsoNormal">
		<span style="font-size:16px;">这是最重要、最要命的一点！同事下载完后，你必须、立刻、马上回到终端，按下&nbsp;Ctrl + C&nbsp;把这个命令强行掐断！如果你因为装&nbsp;X&nbsp;忘了掐断它，你这台电脑就相当于一直对整个公司局域网敞开着大门。在这个&nbsp;WiFi&nbsp;下的任何人，只要扫出了你的&nbsp;IP，就能随意浏览甚至下载这个文件夹里的所有东西。这在企业里是极其严重的红线事故！传完就杀，这是极客的基本素养。</span>
	</p>
	<p class="MsoNormal">
		<span style="font-size:16px;">防呆铁律&nbsp;2：不要在根目录做法！</span>
	</p>
	<p class="MsoNormal">
		<span style="font-size:16px;">新手极易犯的低级错误：刚打开终端，在默认的用户根目录（~）下直接敲了这行代码。&nbsp;这简直是在裸奔！这相当于把你电脑里的微信聊天记录缓存、各种密码本、以及所有的个人私密文件，直接做成了一个网站供全公司观赏！永远只在一个包含要发送文件的、极其干净的专属文件夹里，运行这个命令。</span>
	</p>
	<p class="MsoNormal">
		<span style="font-size:16px;">只用一行系统自带的终端指令，不仅秒杀了&nbsp;U&nbsp;盘和龟速网盘，还向同事狠狠秀了一把底层的肌肉。在不懂代码的人眼里，这就是黑客级的降维打击。</span>
	</p>
	<p class="MsoNormal">
		<span style="font-size:16px;">本期知识库沉淀：在同一局域网下传几十&nbsp;G&nbsp;超大文件，用&nbsp;python3 -m http.server&nbsp;端口号&nbsp;瞬间将本地目录变为满速网页云盘。传完务必&nbsp;Ctrl+C&nbsp;关闭大门防泄漏。</span>
	</p>
<span style="font-size:16px;"><span style="color:#454545;font-size:16px;background-color:#FFFFFF;font-family:Verdana, &quot;">以上就是“</span><span style="color:#454545;font-size:16px;background-color:#FFFFFF;font-family:Verdana, &quot;">微信传大文件被限制？用 python 秒变局域网云盘</span><span style="color:#454545;font-size:16px;background-color:#FFFFFF;font-family:Verdana, &quot;">”</span><span style="color:#454545;font-size:16px;background-color:#FFFFFF;font-family:Verdana, &quot;">的详细内容，想要了解更多</span><a href="http://www.phpxs.com/" target="_blank">Python</a><a href="http://www.phpxs.com/" target="_blank">教程</a><span style="color:#454545;font-size:16px;background-color:#FFFFFF;font-family:Verdana, &quot;">欢迎持续关注</span><a href="http://www.phpxs.com/" target="_blank">编程</a><span style="color:#454545;font-size:16px;background-color:#FFFFFF;font-family:Verdana, &quot;">学习网。</span></span>
</p>]]></description>
<pubDate>2026-05-14</pubDate>
</item>
<item>
<title><![CDATA[以防你不知道Python这个很“黑客味”的特性：True+True=2！]]></title>
<link>http://www.phpxs.com/post/14175/</link>
<description><![CDATA[<p class="MsoNormal">
	<span style="font-size:16px;"><img src="http://www.phpxs.com/uploads/202605/14/77a6e392b4bcfb912d0739fd2389b4ae.png" alt="" /><br />
</span>
</p>
<p class="MsoNormal">
	<span style="font-size:16px;">波兰开发者</span><span style="font-size:16px;"> Maciej Kowalski </span><span style="font-size:16px;">近日在其个人博客整理了一系列关于 </span><span style="font-size:16px;">Python </span><span style="font-size:16px;">的</span><span style="font-size:16px;">“</span><span style="font-size:16px;">怪异</span><span style="font-size:16px;">”</span><span style="font-size:16px;">设计。这些特性看似反直觉，实则反映了 </span><span style="font-size:16px;">Python </span><span style="font-size:16px;">作为一门纯面向对象语言的核心哲学</span><span style="font-size:16px;">——</span><span style="font-size:16px;">一切皆对象。</span>
</p>
<p class="MsoNormal">
	<span style="font-size:16px;">Python </span><span style="font-size:16px;">比俄罗斯联邦还老。这是文章给出的第一个冷知识。</span>
</p>
<p class="MsoNormal">
	<span style="font-size:16px;">Python </span><span style="font-size:16px;">诞生于 </span><span style="font-size:16px;">1991 </span><span style="font-size:16px;">年 </span><span style="font-size:16px;">2 </span><span style="font-size:16px;">月 </span><span style="font-size:16px;">20 </span><span style="font-size:16px;">日，而苏联解体发生在同年 </span><span style="font-size:16px;">12 </span><span style="font-size:16px;">月 </span><span style="font-size:16px;">26 </span><span style="font-size:16px;">日。这意味着 </span><span style="font-size:16px;">Python </span><span style="font-size:16px;">实际上比俄罗斯联邦还要年长近 </span><span style="font-size:16px;">10 </span><span style="font-size:16px;">个月。尽管近年来 </span><span style="font-size:16px;">Python </span><span style="font-size:16px;">因人工智能和数据科学的爆发而风靡全球，甚至波兹南工业大学都已用 </span><span style="font-size:16px;">Python </span><span style="font-size:16px;">取代 </span><span style="font-size:16px;">Delphi </span><span style="font-size:16px;">作为教学语言，但它本质上是一门有着 </span><span style="font-size:16px;">30 </span><span style="font-size:16px;">多年历史的成熟语言。</span>
</p>
<p class="MsoNormal">
	<span style="font-size:16px;">更让人感到意外的是，在</span><span style="font-size:16px;"> Python </span><span style="font-size:16px;">中 </span><span style="font-size:16px;">bool </span><span style="font-size:16px;">竟然是 </span><span style="font-size:16px;">int </span><span style="font-size:16px;">的子类。查看 </span><span style="font-size:16px;">CPython </span><span style="font-size:16px;">的 </span><span style="font-size:16px;">builtins.pyi </span><span style="font-size:16px;">定义可以清楚地看到 </span><span style="font-size:16px;">class bool(int) </span><span style="font-size:16px;">这样的继承关系。因此 </span><span style="font-size:16px;">True + True </span><span style="font-size:16px;">的结果是 </span><span style="font-size:16px;">2</span><span style="font-size:16px;">，而不是报错。</span>
</p>
<p class="MsoNormal">
	<span style="font-size:16px;">这与</span><span style="font-size:16px;"> Java </span><span style="font-size:16px;">等语言形成鲜明对比</span><span style="font-size:16px;">——Java </span><span style="font-size:16px;">中 </span><span style="font-size:16px;">true + true </span><span style="font-size:16px;">会直接触发编译错误。</span><span style="font-size:16px;">Python </span><span style="font-size:16px;">的设计者认为这种多态更加优雅，而且它允许开发者通过继承 </span><span style="font-size:16px;">int </span><span style="font-size:16px;">来创建自定义数值类型。例如，作者展示了一个 </span><span style="font-size:16px;">modulo10 </span><span style="font-size:16px;">类，继承自 </span><span style="font-size:16px;">int </span><span style="font-size:16px;">并对加法运算取模，可以直接赋值给 </span><span style="font-size:16px;">int </span><span style="font-size:16px;">类型的变量而不会触发类型检查错误。</span>
</p>
<p class="MsoNormal">
	<span style="font-size:16px;">class&nbsp;modulo10(int):</span><br />
<span style="font-size:16px;">&nbsp; &nbsp;&nbsp;def&nbsp;__add__(self, other):</span><br />
<span style="font-size:16px;">&nbsp; &nbsp; &nbsp; &nbsp;&nbsp;return&nbsp;super().__add__(other) %&nbsp;10</span><br />
<span style="font-size:16px;">x:&nbsp;int&nbsp;= modulo10(5) &nbsp;# no errors, types match</span><br />
<span style="font-size:16px;">assert&nbsp;x +&nbsp;6&nbsp;==&nbsp;1# pas</span>
</p>
<p class="MsoNormal">
	<span style="font-size:16px;">Python </span><span style="font-size:16px;">中的 </span><span style="font-size:16px;">None</span><span style="font-size:16px;">、</span><span style="font-size:16px;">True</span><span style="font-size:16px;">、</span><span style="font-size:16px;">False </span><span style="font-size:16px;">都是单例对象（</span><span style="font-size:16px;">singleton</span><span style="font-size:16px;">），在解释器启动时就被创建，垃圾回收器永远不会触碰它们。反复调用 </span><span style="font-size:16px;">id(None) </span><span style="font-size:16px;">会得到完全相同的内存地址。更实用的是小整数缓存机制：</span><span style="font-size:16px;">CPython </span><span style="font-size:16px;">会预先分配 </span><span style="font-size:16px;">-5 </span><span style="font-size:16px;">到 </span><span style="font-size:16px;">256 </span><span style="font-size:16px;">之间的整数对象。这本质上是计算机科学中经典的 </span><span style="font-size:16px;">interning </span><span style="font-size:16px;">模式，可以显著减少内存分配开销。</span>
</p>
<p class="MsoNormal">
	<span style="font-size:16px;">文章还提到了一个容易被忽视的陷阱</span><span style="font-size:16px;">——Python </span><span style="font-size:16px;">的循环垃圾回收是可选的。只需四行代码就能人为制造内存泄漏：导入 </span><span style="font-size:16px;">gc </span><span style="font-size:16px;">模块，调用 </span><span style="font-size:16px;">gc.disable() </span><span style="font-size:16px;">禁用循环垃圾回收器，然后创建一个自引用的列表 </span><span style="font-size:16px;">a = []; a.append(a)</span><span style="font-size:16px;">。由于 </span><span style="font-size:16px;">Python </span><span style="font-size:16px;">主要依赖引用计数来管理内存，而循环引用会导致引用计数永远无法归零，如果同时关闭了循环垃圾回收器，这段内存就真的泄漏了。</span>
</p>
<p class="MsoNormal">
	<span style="font-size:16px;">import&nbsp;gc</span><br />
<span style="font-size:16px;">gc.disable()</span><br />
<span style="font-size:16px;">a = []</span><br />
<span style="font-size:16px;">a.append(a)</span>
</p>
<p class="MsoNormal">
	<span style="font-size:16px;">此外，文章还提到了</span><span style="font-size:16px;"> GIL</span><span style="font-size:16px;">（全局解释器锁）这一老生常谈的话题。由于 </span><span style="font-size:16px;">GIL </span><span style="font-size:16px;">的存在，</span><span style="font-size:16px;">Python </span><span style="font-size:16px;">的多线程程序在任意时刻只有一个线程在执行 </span><span style="font-size:16px;">Python </span><span style="font-size:16px;">字节码，无论你的 </span><span style="font-size:16px;">CPU </span><span style="font-size:16px;">有多少核心。对于 </span><span style="font-size:16px;">I/O </span><span style="font-size:16px;">密集型任务，多线程依然有意义；但对于 </span><span style="font-size:16px;">CPU </span><span style="font-size:16px;">密集型任务，多线程不仅无益，甚至可能适得其反。值得庆幸的是，</span><span style="font-size:16px;">Python 3.13 </span><span style="font-size:16px;">已经引入了实验性的自由线程模式，未来 </span><span style="font-size:16px;">GIL </span><span style="font-size:16px;">有望被彻底移除。</span>
</p>
<p class="MsoNormal">
	<span><span style="color:#454545;background-color:#FFFFFF;font-family:Verdana, &quot;font-size:16px;">以上就是“</span><span style="color:#454545;background-color:#FFFFFF;font-family:Verdana, &quot;font-size:16px;">以防你不知道Python这个很“黑客味”的特性：True+True=2！</span><span style="color:#454545;background-color:#FFFFFF;font-family:Verdana, &quot;font-size:16px;">”</span><span style="color:#454545;background-color:#FFFFFF;font-family:Verdana, &quot;font-size:16px;">的详细内容，想要了解更多</span><a href="http://www.phpxs.com/" target="_blank"><span style="font-size:16px;">Python</span></a><a href="http://www.phpxs.com/" target="_blank"><span style="font-size:16px;">教程</span></a><span style="color:#454545;background-color:#FFFFFF;font-family:Verdana, &quot;font-size:16px;">欢迎持续关注</span><a href="http://www.phpxs.com/" target="_blank"><span style="font-size:16px;">编程</span></a><span style="color:#454545;background-color:#FFFFFF;font-family:Verdana, &quot;font-size:16px;">学习网。</span><span style="font-size:16px;"></span><span style="font-size:16px;">&nbsp;</span></span>
</p>]]></description>
<pubDate>2026-05-14</pubDate>
</item>
</channel>
</rss>