在 Python 里,字面量(literal)就是“写在源码里、解释器一看就能直接算出值”的常量写法,不需要再经过变量查找或函数调用。
常见几类:
| 类型 | 字面量示例 | 说明 |
|---|---|---|
| 数字 | 42 -3.14 0xFF 1_000_000 3+4j |
整型、浮点、十六进制、二进制、复数 |
| 字符串 | "hello" 'py' r"raw" b"bytes" f"{x=}" |
单/双/三引号、原始串、字节串、 f-string |
| 布尔 | True False |
关键字常量 |
| 空值 | None |
单例 |
| 容器 | [1,2,3] (4,5) {7,8} {'a':1} |
列表、元组、集合、字典字面量 |
特点
- 编译阶段就被解析成对应的常量对象,放入所在模块的
co_consts。 - 对不可变类型(数字、字符串、元组…)多次出现相同值时,CPython 会常量折叠并复用同一对象:
>>> def f(): return 256 is 256 >>> def g(): return 257 is 257 >>> f(), g() (True, False) # 256 被折叠,257 在交互语句里新建 - 可变容器字面量每次执行都会新建对象:
>>> [] is [] False
一句话:字面量就是“写死在代码里的常量值”,Python 在运行时直接把它们变成对应类型的对象。