原标题:给 Python 新手的 Python 3.8 六大新特性介绍
来源:AI 研习社 链接:https://www.yanxishe.com/TextTranslation/2344
语言会变化。语言会优化。2020年已不再支持Python 2。
随着数据科学的兴起,Python成为2019年最受欢迎的编程语言。尽管如此,面对这么多要学的东西,感到不知所措也是很正常的。语法在不断变化。每次更新都会添加许多新的表达式形式。在Python中很难记录到这些改动。有些特性我要是早点知道就好了。
我希望早点知道Python的5个特性
包括了lambda、映射和过滤的Python技巧
towardsdatascience.com
如果你也有同样的感觉,那对你来说有个坏消息。最近发布了Python 3.8。但不要害怕。我总结了Python 3.8中每个Python初学者都应该学习的6个新特性。
1. 赋值表达式 -- 可读性
也被称为海象操作员 ,它是一个带有语法的新操作符 :=这允许您将值赋给变量作为更大表达式的一部分。 这可以说是Python 3.8中讨论最多的新特性。这里有一个例子。
赋值表达式 b := a**2 赋给变量b一个值,该值是a的平方, 这里是36,然后检查b的值是否大于0。
赋值表达式有时可以使代码更紧凑和可读。 不过请注意不要滥用它,因为在某些情况下,它可能使您的代码更加难以理解。
# DON'T DO THIS!
a = 5
d = [b := a+1, a := b-1, a := a*2]
这个操作符在其他(较老的)编程语言中已经存在,我估计大多从其他编程语言转到Python的程序员都能够使用这个新特性。在它无处不在之前熟悉它。上图就是海象。
2. 参数类型——鲁棒性
Python函数中的性能参数可以接受两种类型的参数。
按位置传递的位置参数
由关键字提供的关键字参数
在下面的示例中,性能参数a和b的值可以通过位置或关键字参数提供。很灵活。
def my_func(a, b=1):
return a+bmy_func(5,2) # both positional arguments
my_func(a=5,b=2) # both keyword arguments
Python的新版本提供了一种方法来指定性能参数,这些性能参数只能接受使用语法/和*进行分隔的位置或关键字参数。
*后一种语法*不是首次出现在Python 3.8中的
在下面的示例中,前两个性能参数a和b仅仅是位置参数,中间两个c和d可以是位置参数或关键字参数,最后两个e和f仅仅是关键字参数。
Austin Distel 在 Unsplash上发布的照片
你为什么要牺牲灵活性呢?当性能参数名称没有用或很随意时,应该排除关键字参数。如果将来更改函数中的性能参数名称,这还可以避免破坏代码。它有助于更鲁棒的代码。
3. f-string 2.0 — 调试
Python中的f-string改变了游戏规则。它是一种可读的、优雅的字符串格式语法,将表达式嵌入到字符串中。这是通过语法f'{expr}'来实现的,其中一个表达式由一个f-string中的花括号括起,在引号前加上f。
新的更新允许在f -string 内部的表达式中使用等号=作为格式说明符,语法为f'{expr=}'。输出字符串将包括变量名及其值,在=之间加一个等号,如下所示。
我们通常希望打印出变量的值,以用于文档编制或调试。这使得调试变得非常简单,只需要很少的工作。
4. 可逆字典--顺序
字典现在可以使用reversed()以相反的插入顺序来进行迭代。
5. 新模块--元数据
有一个新的importlib.metadata模块,允许您从第三方包中读取元数据。您可以在脚本中提取包的版本号。
6. 继续--finally
曾经由于实现上的问题,在一个finally子句中使用continue语句是非法的。现在解决了。
Hannah Jacobson在 Unsplash 上发布的照片
启发
注意,我没有提到那些高级特性,它们对为小型项目编写代码的普通程序员几乎没有关系。其中包括多进程共享内存 、新的Pickle协议等。给那些感兴趣的人。
这里有6个新的Python特性,即使是Python初学者也可以从中受益。在跳入Python 3.8之前,请确保你熟悉一些基本的Python特性。如果你对Python感兴趣,下面的文章可能会有用:
我希望早点知道Python的5个特性
包括了lambda、映射和过滤的Python技巧
towardsdatascience.com
每个Python初学者都应该学习4个NumPy技巧
编写可读代码的技巧
towardsdatascience.com
一THE END一
免责声明:本文来自互联网新闻客户端自媒体,不代表本网的观点和立场。
合作及投稿邮箱:E-mail:editor@tusaishared.com