python3.6新功能_6个您不想错过的Python新功能

python3.6新功能

任何无法随时间增加新功能的编程语言都已不再是具有未来的技术,而已成为过去的技术。 Python 3继续通过添加重要的新功能而前进,尽管当您全神贯注于开发工作的精髓时,很难跟上它们。

这是Python 3的最后几个版本中的六个最新功能,这些功能不仅值得您关注,而且可能会在您的软件项目中占有一席之地。

[ 同样在InfoWorld上:每个Python开发人员都有24个Python库 ]

F弦

PythonZen指出应该有一种显而易见的做事方法。 Python中的字符串格式与该规则有很大的出入,因为有很多方法可以做到这一点。 但是在Python 3.6中推出的“ f字符串”格式既最快又最方便。 但是,许多在早期版本的Python中学习字符串格式的Python程序员却没有利用它们。

要使用f字符串,只需将要包括在字符串中的变量放在花括号中,并用f前缀修饰字符串:

filename = "file.jpg"
f_name_str = f"Your file is {filename}"

结果:

Your file is file.jpg

几乎所有有效的Python表达式都可以放在大括号中。 您可以使用Python的内部表达式格式语言在其中装饰表达式。 您可以对多行​​f字符串使用三引号。

这些优点使f字符串成为字符串格式的便捷首选,因为它们可以优雅地覆盖绝大多数用例。 大约只有在您需要通过.format命令传递任意格式参数时,才不想使用f字符串。

另一个好处是:f字符串的渲染速度远远快于format命令或% string-rendering运算符。 在大多数情况下,f字符串的速度几乎是format两倍,比%稍快,并且比Template格式化对象快一个数量级。

Python 3.8在f字符串中添加了一个新的加号: 内部调试 。 在f字符串表达式的末尾添加一个等号,渲染该字符串时,您会看到其他数据:

filename = "file.jpg"
f_name_str = f"Your file is {filename=}"

结果:

Your file is filename='file.jpg'

异步

异步编程(或简称为异步)使您可以将需要等待外部事件(例如网络请求或磁盘I / O)的多个任务排队,并在它们之间高效切换。 异步是一种使某些作业具有多线程效率的方式,但操作开销却少得多。 异步操作占用的内存少得多,并且切换速度远快于线程。

Python在3.4版中引入了asyncio库,在3.5版中引入了async / await关键字,从那以后,该语言一直在稳定地添加和改进async的工作方式。

如果您尚未在代码中使用异步,则值得探讨 。 毕竟,任何花时间等待磁盘或网络操作的程序都将从异步代码中受益。 一个警告:首先学习异步可能会很棘手,因为它需要对代码进行不同的思考。

[ 同样在InfoWorld上:Python异步编程入门 ]

资料类别

Python 3.7引入了数据类 ,该数据类提供了一种编写存储许多数据元素的类的方法,而无需使用大量的样板构造函数或初始化程序代码。 例如:

from dataclasses import dataclass

@dataclass
class Student:
    name: str
    student_id: int
    gpa: float

此代码自动生成__init__函数,以将namestudent_idgpa分配给类实例中的它们各自的变量。 它还为该类生成比较运算符。 生成的类是与其他类一样的类。 唯一的区别是定义方式。

如果创建的类主要是许多命名数据元素的容器,并附加了一些方法,则数据类可以避免为每个类编写细节问题的麻烦。

赋值表达式(“海象运算符”)

这是一个常见的构造:

my_val = func_result()
if my_val == 1:
    do_something_else()

赋值表达式语法 (也称为“ walrus运算符”)使您可以将局部作用域中的变量赋值压缩为一行。

if (my_val:=func_result()) == 1:
    do_something_else()
# my_val continues to be a valid value 

由于此语法仅在Python 3.8及更高版本中有效,因此您应仅在保证使用这些更高版本的Python的新项目中使用它。 但这是减少Python代码中经常弹出的样板的一种便捷方法。

Breakpoint()函数

大多数Python开发人员使用其Python IDE中的功能进行调试,例如在代码中手动插入断点。 breakpoint()函数是Python 3.7中的新增功能 ,可让您手动将断点插入代码中—例如,在仅由某些条件触发的代码路径中。 这样可以更轻松地创建交互式调试行为。 使用breakpoint() ,甚至还可以使用自定义调试功能,而不是默认的pdb ,从而触发该功能。

[ 通过InfoWorld的App Dev Report新闻通讯了解软件开发中的热门话题 ]

类型提示改进

在最长的时间里,Python没有明确的方式来指定变量或函数参数的类型。 现在, Python解释器直接支持 类型提示和typing模块

在运行时不强制使用Python中的类型提示。 但是,当与整理工具结合使用时,类型提示会消除很多错误,这些错误否则可能由于Python的动态性而在生产中爆发。 Solo和团队开发人员都可以从中受益。 此外,可以根据需要将类型提示逐渐添加到代码库中。 例如,您可能首先在团队之间使用的接口周围使用类型提示,然后在内部接口周围使用类型提示。

将来,我们可能会看到更加积极地使用mypyc等第三方项目,以通过类型提示来实现Python的运行时加速。 如果只是有限的话,那么现在可能会获得一些性能提升。 但是使用类型仍然有许多其他直接好处,这些好处与程序员的工作效率(Python的中坚力量)有关,而不是与原始性能有关。

翻译自: https://www.infoworld.com/article/3514948/6-great-new-python-features-you-dont-want-to-miss.html

python3.6新功能

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值