xbet星投

首页 > 正文

Python 3.8 即将到来,这是你需要关注的几大新特性

www.minecraftflash.com2019-09-09
Python 3.8即将推出,这是您需要注意的一些新功能

机器整理的核心

参与:一鸣,路

Python是一种广受欢迎的编程语言,每个版本的更新都会对开发社区产生影响。最近,Python 3.8已进入beta 2版本的测试,新功能已被添加,最终版本预计将于今年10月发布。在发布之前,机器的核心总结了Python 3.8中的一些值得关注的新功能和改进。

在计算机领域工作的读者应该非常熟悉Python编程语言。这是一种广受欢迎的动态编程语言。其灵活的语法功能使该语言广泛应用于脚本工具,数据分析和Web后端。 Python开发社区也非常活跃,3.x版本的迭代速度非常快。在2018年6月底,Python 3.7问世,Python 3.8的开发和测试已经开始。最近,Python软件基金会发布了3.80b2的文档,向公众展示了测试的beta版本以及Python 3.8版本的新特性和功能改进。

目前,Python 3.8的beta测试过程正在进行中。在今年6月初,官方测试版 Python 3.80b1发布,一个月后发布了Python 3.80b2。在第二个测试版发布之后,添加了新的Python 3.8功能。官方已宣布最终版本的发布日期,预计将于今年10月发布。

那么新的Python 3.8版本的新特性和功能是什么?根据Python基金会发布的文档,机器之心编制了以下值得期待的新功能和改进。

文件地址:

新语法

Python 3.8最有趣的部分是语法的变化,这有助于提高效率并减少代码工作量。

海象算子(:=)

这个“:=”交叉看看它是否有点像海象的脸?这是一个新的Python组件,可直接评估变量。

判断。

m=re.match(p1,line)

Ifm:

Returnm.group(1)

否则为:

m=re.match(p2,line)

Ifm:

Returnm.group(2)

否则为:

m=re.match(p3,line)

.

使用海象运算符,我们可以直接为变量赋值:

Ifm:=re.match(p1,line):

Returnm.group(1)

Elif m:=re.match(p2,line):

Returnm.group(2)

Elif m:=re.match(p3,line):

循环中还有一个示例,您必须首先在循环变量之前指定一个值:

ENT=obj.next_entry

而ent:

. #process ent

ENT=obj.next_entry

现在可以在循环时分配值:

Whileent:=obj.next_entry:

. #process ent

在代码调试中支持f-string

在Python 3.6中添加了F字符串(或“格式化字符串”)。虽然这个功能非常方便,但开发人员发现f-string无法帮助调试。因此,Eric V. Smith为f-string添加了一些语法结构,使其可用于调试。

过去,f-string可以这样使用:

打印(f'foo={} FOO巴={巴}')

在Python 3.8中,只需使用以下代码(更简洁):

打印(F '{富=} {巴=}')

在这两种情况下,输出都是:

>>>富=42

>>> bar='回答.'

>>> print(f'{foo=} {bar=}')

Foo=42 bar=回答.

此外,您可以通过在赋值符号后添加“!s”和“!f”命令来指定输出的格式,例如:

>>> importdatetime

>>>现在=datetime.datetime.now

>>>打印(F '{现在=} {现在=!S}')

Now=datetime.datetime(2019,7,16,16,58,0,)now=

>>> importmath

>>> print(f'{math.pi=!f:2f}')

Math.pi=3.14

如代码所示,“!s”字符被添加到第二个“now”变量的等号,导致现在从“datetime”类型输出更改为字符串类型输出。在“pi”的输出中,添加“!f:2f”会使pi的输出为小数点后的两位数。

花括号中的格式也会影响打印结果的格式,例如:

>>>一个=37

>>>打印(f'{a=},{a=}')

a=37,a=37

花括号中的正方形之间的间距是不同的,并且打印结果中的间距是不同的。

关键字的变量输入不是必需的

此语法允许函数指定在定义输入变量时只能输入值,而不在值之前添加关键字。

例如,使用pow功能时:

>>> pow(2,3)

8

>>> pow(x=2,y=3)

.

TypeError: pow不带关键字参数

第一种方法是合法的,但第二种方法是非法的。

为了确保第一个纯Python函数方法,开发人员可以在定义函数时使用“”来指定必须以第一种格式输入哪些变量。例如:

Defpow(x,y,z=无,):

R=X **

Ifz isNone:

r%=z

Returnr

在定义了所有变量之后添加了一个额外的“”字符,表明所有Python变量输入必须采用pow(x,y,z)的形式。

当然,您也可以在变量之间插入“”。正斜杠之前的变量遵循纯Python输入方法,正斜杠遵循定义的方法。例如,定义以下函数:

Def fun(a,b,c,d,*,e,f):

.

以下表达是合法的,但其他表达是非法的:

乐趣(1,2,3,4,e=5,f=6)#legal

乐趣(1,2,3,d=4,e=5,f=6)#legal

乐趣(a=1,b=2,c=3,d=4,e=5,f=6)#illegal

其他功能

除了一些语法上的改进之外,Python 3.8版本还有一些其他的变化。

可移动的“__pycache __”

__pycache__目录由Python3解释器创建,用于保存.pyc文件。解释器编译.py文件后,这些文件保存字节码。以前的Python版本只为每个.py文件创建了一个.pyc文件,但新版本将会更改。

为了支持多个版本的Python,包括一些不是CPython的版本(例如PyPy),库文件现在将为每个Python版本创建一个相应的.pyc文件,格式为“name.interp-version.pyc”。例如,foo.py文件将在第一次使用时创建相应的pyc文件,路径为“__pycache__foo.cpython-37.pyc”。这个pyc文件将定义使用的Python版本。

其他改进

python 3.8将添加一种更快的方法来调用C扩展,它最初是c python。在python 3.8中,这个特性是实验性的,最终完成的版本将出现在python3.9中。

同时,编译器中的初始化配置处理也得到了清理,允许python更好地嵌入其他程序,而不依赖于环境变量或添加其他在现有python系统中引起冲突的组件。

此外,大量的python内置模块也得到了改进和调整,如“os.path”、“shutil”、“math”、“ssl”等。

python 3.8什么时候见你?

发布时间仍在讨论中,但考虑到python 3.9的发布计划(大约2020年6月),官方认为python3.8不应该在今年晚些时候发布。10看更多

热门浏览
热门排行榜
热门标签
日期归档