python教程技术文章
-
Python 3.15 新增的 sentinel 内置能力,适合替代 object() 作为参数缺省值。本文从 repr、身份判断和类型收窄讲到 pickle,说明模块级定义与局部定义的边界。419 收藏 -
本文介绍如何使用 Pandas 的 melt() 方法,将 Excel 中以人员为列标题的宽格式排班表(Date、Bob、Joe、Jane),高效重塑为标准长格式(Date、Name、On/Off),适用于后续分析、可视化或导入数据库。 本文介绍如何使用 Pandas 的 `melt()` 方法,将416 收藏 -
Python 3.15 新增 Tachyon 采样分析模块。本文按脚本、运行中进程、单次快照和历史 profile.bin 四种场景选择命令,再说明采样率、线程范围、pstats 与 flamegraph 的适用边界。415 收藏 -
文章 · python教程 | 1星期前 | 并发 · 异常处理 · python · 异步编程 · Python CancelledError 结构化并发 ExceptionGroup asyncio.TaskGroup
asyncio.TaskGroup 会在首个非取消异常出现后取消同组任务,并在退出时抛出 ExceptionGroup。本文用批量抓取场景拆开异常聚合、取消传播和结果收集边界,给出可复现的验收代码。414 收藏 -
用 pathlib.Path.resolve 规范化用户提供的文件名,并通过根目录边界校验拦截 .. 与符号链接带来的目录穿越风险。414 收藏 -
处理大文件上传时,反复 bytes 切片会让内存峰值和复制次数一起上升。本文用 Python memoryview、bytearray 和 readinto 组织固定缓冲区,核对切片视图、尾块长度、复用缓冲区和异常恢复边界。413 收藏 -
使用 Python http.server 模块时,若在 do_POST 中直接调用 self.rfile.read() 而不指定字节数,会导致服务器阻塞等待连接关闭,而非及时读取完请求体;正确做法是依据 Content-Length 头精确读取对应字节数。 在 Python 的 http.serv412 收藏 -
文章 · python教程 | 2星期前 | 资源管理 · python · 异步编程 · Python contextlib.aclosing 异步资源清理 aclose async generator
contextlib.aclosing 用异步上下文管理器把 aclose() 纳入 async with 的退出阶段,适合异步生成器和带异步清理方法的资源。本文从一个流式读取场景拆解退出顺序、异常传播和可回归的测试验收。408 收藏 -
Python 3.14 把 Zstandard 支持带进标准库。本文用同一份数据对比内存压缩、文件读写和解压核对,说明压缩级别、可选模块与旧版本兼容边界。406 收藏 -
用 multiprocessing.shared_memory 让多个 Python 进程直接访问同一块缓冲区,重点处理 create、attach、close、unlink 的生命周期,以及命名冲突和释放验收。399 收藏 -
文章 · python教程 | 1星期前 | 数据库 · SQLite · sqlite3 · Python教程 · Python SQLite 数据库查询 sqlite3.Row row_factory
Python sqlite3.Row 能让查询结果同时支持下标和列名访问,但它不会替你完成类型转换或空值判断。本文用同一个订单查询示例核对 row_factory、带类型的列值和 NULL 字段,说明如何在读取层保留清晰的边界。399 收藏 -
文章 · python教程 | 1星期前 | 调试 · python · inspect · 函数调用 · 参数绑定 · Python 参数校验 关键字参数 inspect.Signature.bind BoundArguments
当函数参数来自字典或配置时,inspect.Signature.bind 可以在真正调用前完成参数绑定并把错误收敛为 TypeError。本文从一个小型回调分发器出发,演示 Signature.bind、BoundArguments 和 apply_defaults 的边界。393 收藏 -
读取几 GB 的 CSV 时,真正容易把内存推高的往往不是分块大小,而是类型推断、字符串列和失败行处理。本文用 pandas 分块读取与 Python 原生迭代两条路径,说明如何设定 dtype、逐块校验、隔离坏行并用峰值数据验收。392 收藏 -
该语法并非类型转换(typecast),而是 ctypes 模块特有的动态类型构造:c_double * n 会生成一个长度为 n 的 C 兼容数组类型,再通过解包调用实例化——本质是类型生成而非类型转换。 该语法并非类型转换(typecast),而是 ctypes 模块特有的动态类型构造:`c_d391 收藏 -
Python 的无界缓存命中率可能很好,却把不断变化的参数组合留在进程里。本文用可复现实验比较 functools.cache 与 lru_cache(maxsize=None),并给出内存上限、清理和压测验收方法。391 收藏