没有任何字节码会把对象“写进符号表”——符号表在运行期是只读的。 所有真正“存名字-值绑定”的字节码都是写给“命名空间”,常见指令如下: ┌--------------┬------------------------┐ │ 字节码 │ 写入位置/命名空间 │ ├--------------┼------------------------┤ │ STORE_NAME │ 当前局部或全局 dict │ │ STORE_GLOBAL │ 当前模块的全局 dict │ │ STORE_FAST │ 当前帧的 fastlocals 数组 │ │ STORE_DEREF │ 闭包 cell 对象(freevars/cellvars) │ │ STORE_ATTR │ 指定对象的属性 dict │ │ STORE_SUBSCR │ 任意映射/序列的下标位置 │ └--------------┴------------------------┘ 总结: “写符号表”的指令 根本不存在; “写命名空间”的指令就是上表这些 STORE 系列。