Python 语法糖由解释器动态转换,零性能损耗,不增加新功能,仅简化代码。
核心高频语法糖
| 语法糖 | 示例 | 等价代码 |
|---|
| 推导式 | [i*2 for i in range(10)] | for 循环 + append |
| 三元表达式 | val = a if cond else b | 完整 if-else 分支 |
| 算术运算符 | a += b | a = a + b |
| 装饰器 | @staticmethod | func = decorator(func) |
| f-string | f"name: {var}" | "name: {}".format(var) |
| in 成员判断 | x in list | 底层迭代遍历 |
| 解包语法 | func(*args, **kwargs) | 手动遍历传参 |
次要常用语法糖
| 语法糖 | 示例 | 说明 |
|---|
| 海象运算符 | if (n := len(lst)) > 10 | 赋值并判断,一行省两行 |
| 切片语法 | lst[1:5:2] | 调用 __getitem__(slice) |
| 星号生成序列 | [*range(5)] | 等价 list(range(5)) |
| 上下文管理器 | with open(...) as f | 自动 try-finally |
| 默认参数 | def func(a=10) | 函数内判断赋值 |
示例
1
2
3
4
5
6
7
8
9
10
11
12
| # 推导式
squares = [x**2 for x in range(10)]
# 三元表达式
status = "成年" if age >= 18 else "未成年"
# 解包
a, *rest = [1, 2, 3, 4] # a=1, rest=[2,3,4]
# 海象运算符
while (line := file.readline()):
process(line)
|
Comments