第1章 解释器与对象模型


第 1 章 · 解释器与对象模型

章节摘要:本章解决两个问题——把 Python 环境搭起来、跑起第一个程序;然后立刻拆开机器,看清"一切皆对象"与"名字绑定"这两件决定你后续所有理解的事。读完本章,你不会再把赋值误解为拷贝,也开始会用 id() 和 is 做实证。

学习目标

阅读完本章,你应当能够:

  1. 安装 Python 3.10+ 并说明解释器、REPL、字节码三层执行关系;
  2. 用 type 与 id 验证"一切皆对象",包括函数和类本身;
  3. 准确区分"名字绑定"与"值拷贝",预测任何赋值语句的后果;
  4. 解释 is 与 == 的差别,以及小整数缓存的成因;
  5. 看懂一段 dis 反汇编输出的大致结构。

核心概念速览

解释器不是黑魔法,它是一条"源代码 → 字节码 → 对象操作"的流水线;你看不见的每一步,都在操纵对象与名字。

子章节导航

1.1 环境搭建与第一个程序

安装、版本策略、REPL 与脚本两种运行方式,以及第一段带 id() 实验的代码。

1.2 一切皆对象:对象、类型与值

PyObject 的三要素(身份、类型、值),type 的自举现象,以及小整数缓存等解释器优化。

1.3 名字绑定与引用语义

本册最重要的一节。赋值、传参、别名、is 与 ==,以及可变对象别名带来的经典坑。

子章节之间的逻辑关系

1.1 让你能跑代码,是工具箱;1.2 建立对象世界观;1.3 把世界观落到赋值与传参的日常操作上。三者层层递进:

环境与运行方式(1.1) │ 没有它一切是纸上谈兵 ▼ 对象 = 身份 + 类型 + 值(1.2) │ 名字只是指向对象的标签 ▼ 赋值/传参/别名的全部行为(1.3) ​

前置知识与后续延伸

  • 前置:会用命令行、能编辑文本文件即可,零编程基础可读。
    读到这里可以先给自己做个小检验:不看讲义,向同事(或对着空气)解释一句 b = a 之后 id(b) == id(a) 为什么成立。能说清"赋值是贴标签、标签指向堆上的对象",本章的三节就算吃透了;说不清就回到 1.3 节的实验再跑一遍——对象模型这层地基,值得花双倍时间夯实,后面八章全部踩在它上面。

  • 为后续铺垫:第 2 章容器的可变性差异、第 4 章"类也是对象"、第 8 章 GIL 与对象内存管理,全部建立在本章的对象模型之上。

作者与出处
原作者:灏天文库
来源:平台策划编纂
整理人: 灏天文库整理
由灏天文库平台收录,内容或由平台用户上传,仅供学习交流
发布者: 作者: 灏天文库 转发
评论区 (0)
U