Python 语法糖
一、基础语法糖
1. 列表/字典/集合推导式
- 作用:快速生成列表、字典或集合。
- 示例:
# 列表推导式
squares = [x**2 for x in range(5)] # [0, 1, 4, 9, 16]
# 字典推导式
d = {k: k*2 for k in ["a", "b"]} # {'a': 'aa', 'b': 'bb'}
# 集合推导式
s = {x % 3 for x in [1, 2, 3, 4]} # {0, 1, 2}
2. 三元条件表达式
- 简化单行条件判断:
value = "Yes" if condition else "No"
3. 链式比较
- 简化连续比较:
if 1 <= x < 10:
print("x 在 1~10 之间")
二、进阶语法糖
1. 装饰器(Decorators)
- 作用:用 @decorator 语法扩展函数行为。
- 示例:
def log(func):
def wrapper(*args, **kwargs):
print(f"调用函数:{func.__name__}")
return func(*args, **kwargs)
return wrapper
@log
def say_hello():
print("Hello!")
say_hello() # 输出:调用函数:say_hello → Hello!
2. 上下文管理器(with 语句)
- 作用:简化资源管理(如文件、锁)。
- 示例:
with open("data.txt", "r") as f:
content = f.read() # 自动处理文件关闭
3. 解包操作(Unpacking)
- 解包序列和字典:
a, *rest = [1, 2, 3, 4] # a=1, rest=[2,3,4]
d1 = {"a": 1, "b": 2}
d2 = {**d1, "c": 3} # 合并字典 → {'a':1, 'b':2, 'c':3}
4. 海象运算符(Walrus Operator :=)
- Python 3.8+:在表达式中赋值。
- 示例:
if (n := len(data)) > 100:
print(f"数据量过大:{n} 条")
三、函数式语法糖
1. lambda 表达式
- 匿名函数:快速定义简单函数。
add = lambda a, b: a + b print(add(2, 3)) # 5
2. 高阶函数(map/filter/reduce)
- 示例:
# map 转换元素 nums = list(map(lambda x: x*2, [1, 2, 3])) # [2, 4, 6] # filter 过滤元素 evens = list(filter(lambda x: x%2 == 0, [1,2,3,4])) # [2,4]
四、特殊语法糖
1. f-strings 字符串格式化
- 直接嵌入表达式:
name = "Alice"
print(f"Hello, {name.upper()}!") # Hello, ALICE!
2. else 子句在循环中的用法
- 循环未被 break 中断时触发:
for n in [2, 4, 6]:
if n % 2 != 0:
print("发现奇数")
break
else:
print("全是偶数")
进阶高级测试工程师 文章被收录于专栏
《高级软件测试工程师》专栏旨在为测试领域的从业者提供深入的知识和实践指导,帮助大家从基础的测试技能迈向高级测试专家的行列。 在本专栏中,主要涵盖的内容: 1. 如何设计和实施高效的测试策略; 2. 掌握自动化测试、性能测试和安全测试的核心技术; 3. 深入理解测试驱动开发(TDD)和行为驱动开发(BDD)的实践方法; 4. 测试团队的管理和协作能力。 ——For.Heart
查看18道真题和解析