作为现在比较流行的开源免费编程语言 Python 我想对于开发人员肯定很不陌生。Python 是一种编程语言,语法优美,简单易学,功能强大。比如我们常听说的网络爬虫,大多都是使用 Python 编写开发的。近日 python.org官方发出了稳定版(stable),是时候看看 Python3.8 带给我们的新功能了。

Python 3.8.0 新功能
- 新的赋值表达式(:=)
:= 可将值赋给变量,由于它与海象的眼睛和象牙很像,因此被亲切地称为“海象操作符” 。
在此示例中,赋值表达式有助于避免调用两次 len():
#之前
if n>len(a):
print(f"List is too long ({len(a)} elements, expected <= 10)")
#现在
if (n := len(a)) > 10:
print(f"List is too long ({n} elements, expected <= 10)")
该运算符在 while 循环也很有用,该循环计算一个值以测试循环终止,然后在循环体中再次需要相同的值:
while (block := f.read(256)) != '':
process(block)
使用海象运算符可以清理和降低代码复杂性并提高可读性。
- 强制位置参数
在以下示例中,参数a和b是仅位置的,而c或d可以是位置或关键字,而e或f必须是关键字:
def f(a, b, /, c, d, *, e, f):
print(a, b, c, d, e, f)
以下是有效的函数调用:
f(10, 20, 30, d=40, e=50, f=60)
输出:10 20 30 40 50 60
但是,这些是无效的调用:
f(10, b=20, c=30, d=40, e=50, f=60) # b 不能是关键字参数
f(10, 20, 30, 40, 50, f=60) # e 必需是关键字参数
- 支持 f 格式化字符串
=在f 字符串中添加了一个说明符,在f字符串表达式的末尾添加=会打印f 表达式本身的文本,后跟值。例如: f'{expr=}’将扩展为表达式的文本,等号,然后扩展为求值表达式的表示形式。例如:
>>> user = 'eric_idle'
>>> member_since = date(1975, 7, 31)
>>> f'{user=} {member_since=}'
"user='eric_idle' member_since=datetime.date(1975, 7, 31)"
常用的f字符串格式说明符允许对表达式结果的显示方式进行更多控制:
>>> delta = date.today() - member_since
>>> f'{user=!s} {delta.days=:,d}'
'user=eric_idle delta.days=16,075'
= 说明符将显示整个表达式,从而可以示出的计算:
>>> print(f'{theta=} {cos(radians(theta))=:.3f}')
theta=30 cos(radians(theta))=0.866
更多新特性可以查看Python官方文档:https://docs.python.org/3.8/whatsnew/3.8.html
评论前必须登录!
注册