Python 3.4.0 釋出,數百項改進

pythontab發表於2014-03-18

Python 3.4.0 釋出,此版本包括一系列 3.x 系列的改進,數百個小的改進和 bug 修復。

值得注意的更新內容如下:

新語法特性:

Python 3.4 並未新增任何新的語法特性

其他新特性:

pip should always be available (PEP 453).

Newly created file descriptors are non-inheritable(PEP 446).

command line option for isolated mode(issue 16499).

improvements in the handling of codecsthat are not text encodings (multiple issues).

A ModuleSpec Type for the Import System (PEP 451).  (Affects importer authors.)

The marshal format has been made more compact and efficient (issue 16475).

新的庫模組:

asyncio: New provisional API for asynchronous IO (PEP 3156).

ensurepip: Bootstrapping the pip installer(PEP 453).

enum: Support for enumeration types(PEP 435).

pathlib: Object-oriented filesystem paths(PEP 428).

selectors: High-level and efficient I/O multiplexing, built upon the select module primitives (part of PEP 3156).

statistics: A basic numerically stable statistics library (PEP 450).

tracemalloc: Trace Python memory allocations (PEP 454).

庫模組中重大的改進:

Single-dispatch generic functions infunctools (PEP 443).

New pickle protocol 4 (PEP 3154).

multiprocessing now has an option to avoid using os.fork on Unix (issue 8713).

email has a new submodule, contentmanager, and a new Message subclass (EmailMessage) that simplify MIME handling (issue 18891).

The inspect and pydoc modules are now capable of correct introspection of a much wider variety of callable objects, which improves the output of the Python help() system.

The ipaddress module API has been declared stable

安全改進:

Secure and interchangeable hash algorithm(PEP 456).

Make newly created file descriptors non-inheritable(PEP 446) to avoid leaking file descriptors to child processes.

New command line option for isolated mode, (issue 16499).

multiprocessing now has an option to avoid using os.fork on Unix.  spawn and forkserver are more secure because they avoid sharing data with child processes.

multiprocessing child processes on Windows no longer inherit all of the parent’s inheritable handles, only the necessary ones.

A new hashlib.pbkdf2_hmac() function provides the PKCS#5 password-based key derivation function 2.

TLSv1.1 and TLSv1.2 support for ssl.

Retrieving certificates from the Windows system cert store support for ssl.

Server-side SNI (Server Name Indication) support for ssl.

The ssl.SSLContext class has a lot of improvements.

All modules in the standard library that support SSL now support server certificate verification, including hostname matching (ssl.match_hostname()) and CRLs (Certificate Revocation lists, seessl.SSLContext.load_verify_locations()).

CPython 實現改進:

Safe object finalization (PEP 442).

Leveraging PEP 442, in most cases module globals are no longer set to None during finalization (issue 18214).

Configurable memory allocators (PEP 445).

Argument Clinic (PEP 436).

其他的還包括許多 CPython 的最佳化,用法和潛在移植問題


相關文章