Python 3.8.0 稳定版发布,来看看Python 3.8.0的新功能吧

作为现在比较流行的开源免费编程语言 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)

使用海象运算符可以清理和降低代码复杂性并提高可读性。

  • 强制位置参数

在以下示例中,参数ab是仅位置的,而cd可以是位置或关键字,而ef必须是关键字:

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

未经允许不得转载:PHP100中文网 - 中国第一档PHP资源分享门户 » Python 3.8.0 稳定版发布,来看看Python 3.8.0的新功能吧

赞 (0) 打赏

评论 0

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏