一、概述
Python 对象的生命周期是:
创建 → 被引用 → 引用变化 → 不可达 → 回收
Python 只关心'引用',不关心'是否使用'。
二、核心概念
1. 对象(Object)
- 真正存在于内存中的东西
- 例如:整数、字符串、函数、类、列表……
2. 名字(Name / 变量名)
- 只是一个引用标签
- 本身不存数据
3. 引用(Reference)
- 名字 / 容器 / 属性 → 对象 的指向关系 名字 ──▶ 对象 名字 ≠ 对象
三、对象生命周期第 1 阶段:创建(Creation)
- 对象只会在执行'创建语句'时创建。
1. 常见的创建方式
绑定名字
x = []
名字 x 指向这个 list 对象,引用计数 = 1。Python 不会'先创建一个没有引用的对象,再找名字给它',这两步在语义上是原子完成的。
创建对象
[]
在内存中创建一个 list 对象,对象此时必须被某个引用接住。
逐字拆解 x = [] 到'解释器视角':
x = []
在这一行里,发生了两个动作(但对你来说像一步):
示例:
a = 10 # 创建 int 对象
b = [] # 创建 list 对象
c = {} # 创建 dict 对象
d = lambda x: x # 创建函数对象
[] 是对象本身(一个 list 对象)
b 不是对象,只是一个名字(引用)。
b = [] 的含义是:创建一个 list 对象,然后让名字 b 指向它。
2. def / class 也是'创建对象'
执行到这行时:创建函数 / 类对象并绑定名字。
| 语法 | 创建的对象 | 绑定的名字 |
|---|---|---|
| def f() | 函数对象 | f |
| class A | 类对象 | A |
示例:
def f():
pass
class A:
pass

