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參數。