1. 赋值表达式 := 运算符

Python 3.8 引入了一项新的特性 —— 赋值表达式 := 运算符。该运算符可以同时进行赋值和使用赋值的值,将表达式的值分配给变量,并且保留该值以供后续使用。这对于需要重复计算某个值或使用嵌套函数的编程任务非常有用。

在此之前,开发者通常需要使用中间变量来保存计算结果以供后续使用。而使用 := 运算符,可以直接在表达式中使用被赋值的变量,避免了引入不必要的中间变量。

x = 5
y = (x := x + 1)
print(x, y)  # 输出: 6 6
Python

2. 位置参数的 '/' 分隔符

在 Python 3.8 中,引入了一个新的语法特性,使用 '/' 作为位置参数和关键字参数的分隔符。在函数声明中,'/' 之前的参数将被视为位置参数,'/' 之后的参数将被视为关键字参数。

这个新特性提供了更好的灵活性,使得函数的参数声明更加清晰和易于阅读。在之前的版本中,开发者必须通过注释或文档来明确定义哪些参数是位置参数,哪些参数是关键字参数。

def foo(a, b, /, c, d, *, e, f):
    print(a, b, c, d, e, f)

foo(1, 2, 3, 4, e=5, f=6)  # 输出: 1 2 3 4 5 6
Python

3. 格式化字符串中的 '=' 填充符

Python 3.8 为格式化字符串引入了一个新的填充符号 '='。使用 '=' 符号,可以在格式化字符串中指定字段的对齐方式,使得代码更加简洁易读。

在之前的版本中,如果要对齐字段,开发者需要使用冒号加指定宽度的方式,例如 '{0:10}'. 这种方式比较繁琐,特别是需要对齐多个字段时。

name = 'Alice'
age = 25
print(f'{name = :<10} {age = :>5}')  # 输出: name = Alice     age =    25
Python