摘要:
for line in f? 以及文件打开模式 一、为什么 for line in f 可以逐行读取文件? 这是Python文件对象的一个「语法糖」特性,本质是利用了文件对象的可迭代性。 1. 什么是「可迭代对象」? 简单说,就是可以用 for 循环遍历的对象(比如列表、字符串都是可迭代对象)。Py 阅读全文
posted @ 2025-11-19 20:28
wangya216
阅读(7)
评论(0)
推荐(0)
摘要:
循环引用的核心就是 两个或多个对象互相引用,形成闭环,导致每个对象的引用计数都无法降至 0,GC 仅靠引用计数机制无法回收它们(需依赖标记-清除机制)。 你举的例子是最典型的场景: a = [] b = [] a.append(b) # a 引用 b(a 的元素是 b) b.append(a) # 阅读全文
posted @ 2025-11-19 10:42
wangya216
阅读(0)
评论(0)
推荐(0)
摘要:
Python 的 GC(垃圾回收)核心是「引用计数 + 标记-清除 + 分代回收」机制,回收时机分「自动触发」和「手动触发」,不同机制的触发时机不同,核心原则是「不影响程序运行效率,同时及时回收无用资源」: 一、核心回收时机(按触发方式分类) 1. 自动触发(最常见,无需手动干预) (1)引用计数为 阅读全文
posted @ 2025-11-19 10:39
wangya216
阅读(7)
评论(0)
推荐(0)
摘要:
文件句柄(File Handle)本质是 操作系统给打开的文件分配的“资源标识ID” —— 你可以把它理解成「文件的专属通行证」: 当你用 open() 打开文件时,操作系统会: 在磁盘找到该文件,验证访问权限(读/写); 分配一块内存存储文件相关信息(如文件位置指针、打开模式、缓冲区); 生成一个 阅读全文
posted @ 2025-11-19 10:27
wangya216
阅读(12)
评论(0)
推荐(0)
摘要:
一、核心问题解答 1. 为什么Python有GC还需要关闭文件/用with打开? GC的核心作用是回收“内存资源”(如无引用的对象),但文件属于操作系统级别的外部资源(非内存资源),GC无法管理: 文件句柄(打开文件后操作系统分配的资源标识)不属于Python对象内存,GC无法自动释放; 若不关闭文 阅读全文
posted @ 2025-11-19 10:18
wangya216
阅读(4)
评论(0)
推荐(0)
摘要:
在文件操作中,这个“记录当前读写位置的指示器”,官方术语叫 File Position Indicator(文件位置指示器),也常称为“文件指针”(注意和C语言的内存指针完全不同,仅为位置标记)。 一、核心定义 本质:记录文件下次读写时的起始字节位置(从文件开头计数,默认以字节为单位)。 关键:每次 阅读全文
posted @ 2025-11-19 10:16
wangya216
阅读(5)
评论(0)
推荐(0)

浙公网安备 33010602011771号