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

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

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

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

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

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

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

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

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