补全:局部还是全局
(Python 自己就是「编译成字节码、由 VM 执行」:dis.get_instructions(f) 列出函数 f 的指令,每条有 opname(指令名)和 argval(操作数);f.__cod
补全:数指令
(Python 自己就是「编译成字节码、由 VM 执行」:dis.get_instructions(f) 列出函数 f 的指令,每条有 opname(指令名)和 argval(操作数);f.__cod
循环在字节码里
(Python 自己就是「编译成字节码、由 VM 执行」:dis.get_instructions(f) 列出函数 f 的指令,每条有 opname(指令名)和 argval(操作数);f.__cod
看一个真函数的代码对象
(Python 自己就是「编译成字节码、由 VM 执行」:dis.get_instructions(f) 列出函数 f 的指令,每条有 opname(指令名)和 argval(操作数);f.__cod
co_varnames 是什么
(Python 自己就是「编译成字节码、由 VM 执行」:dis.get_instructions(f) 列出函数 f 的指令,每条有 opname(指令名)和 argval(操作数);f.__cod
Python 和本条的对应
(Python 自己就是「编译成字节码、由 VM 执行」:dis.get_instructions(f) 列出函数 f 的指令,每条有 opname(指令名)和 argval(操作数);f.__cod
补全:把 VM 的环境当根
(每道题开头都有同一段:06 的词法/语法/show、Env、RunError;本条加的 compile_expr / compile_stmt / compile_block / compile_p
补全:从根出发标记
(这一节用一个自造的小堆 Heap 模拟运行时:alloc(名) 造对象,link(持有者, 名) 让持有者引用它(持有者 None 表示「根」,比如一个变量),unlink 解除引用;计数归零就 f
补全:释放的连锁
(这一节用一个自造的小堆 Heap 模拟运行时:alloc(名) 造对象,link(持有者, 名) 让持有者引用它(持有者 None 表示「根」,比如一个变量),unlink 解除引用;计数归零就 f
真的环,真的回收器
用真 Python 看引用环:两个对象互相引用、外面的名字都删掉,弱引用还活着吗?gc.collect() 之后呢?(弱引用不计数,对象没了它就变成 None;列表不能被弱引用,所以用一个小类) im