Python是一款功能强大的电脑编程软件,小编这里为大家带来的是Python最新版,与之前的版本相比,新版本带来了新的语法特性、新的内置特性、新的库模块以及改进了Interpreter,功能更为齐全,特别适合用于独立的、大型项目的开发。
更新内容
新的语法特性
PEP 584,union operators已添加至 dict;
PEP 585,标准集合中的类型提示泛型;
PEP 614,放宽对装饰器的语法限制。
新的内置特性
PEP 616,用于删除前缀和后缀的字符串方法。
标准库的新特性
PEP 593,灵活的函数和变量注释;
添加了os.pidfd_open(),允许进行进程管理,而不产生竞争和信号。
改进 Interpreter
PEP 573,从C扩展类型的方法快速访问模块状态;
PEP 617,CPython现在使用了一个基于PEG的新解析器;
使用PEP 590 vectorcall加快了许多Python内置函数(范围、元组、集合、frozenset、列表、字典)的速度;
垃圾回收不会阻止复活的对象;
许多 Python 模块(_abc, audioop, _bz2, _codecs, _contextvars, _crypt, _functools, _json, _locale, math, operator, resource, time, _weakref)都使用PEP 489定义的多阶段初始化;
许多标准库模块(audioop, ast, grp, _hashlib, pwd, _posixsubprocess, random, select, struct, termios, zlib)都使用 PEP 384 定义的稳定ABI。
新的库模块
PEP 615,即IANA时区数据库现在位于zoneinfo模块的标准库中;
新的graphlib模块中提供了图的拓扑排序的实现。
发布周期变更
PEP 602,CPython采用年度发布周期。
版本优化
1、Build和C API
提供Py_EnterRecursiveCall()和Py_LeaveRecursiveCall()作为limited API的常规函数。从stable API中删除_Py_CheckRecursionLimit。
向C API添加一个新的公共函数PyObject_CallNoArgs(),这个函数可以调用不含参数的可调用Python对象。
全局变量PyStructSequence_UnnamedField在python3.9中修改为常量字符串。
从Py_LIMITED_API.pyfpe.h中剔除PyFPE_START_PROTECT()和PyFPE_END_PROTECT()函数。
删除PyMethod_ClearFreeList()和PyCFunction_ClearFreeList()函数。
2、方法调整
在之前的版本中,math.factorial()函数只接受非负整数值,否则将引发ValueError。在python3.9中该函数将弃用,任何参数都将引发TypeError。
弃用parser模块,并将在以后的Python版本中删除。
修改random模块的seeds类型,今后只支持None,int,float,str,bytes和bytearray类型。
始终允许打开GzipFile文件进行读写,即使不指定mode参数也不会发出警告。
推荐使用_tkinter.TkappType的splitlist()方法代替split()方法。
3、移除模块
collection.abc 里面的抽象基类将不在常规的 collection 模块中公开。
删除sys.getcheckinterval()和sys.setcheckinterval()函数。
删除threading.Thread的 isAlive()方法。
删除ElementTree中的getchildren() 和getiterator()方法。
删除旧plistlib模块的实现,同时删除其中的use_builtin_types参数。