Python 3.9.0

Er is een nieuwe stabiele release van de populaire programmeertaal Python uitgebracht.

Python is een hoog-niveau programmeertaal voor algemene doeleinden, gericht op het verbeteren van de productiviteit van ontwikkelaars en de leesbaarheid van code. Belangrijkste kenmerken zijn dynamische typebinding, automatische geheugenbeheer, volledige introspectie, een mechanisme voor uitzonderingafhandeling, ondersteuning voor multi-threaded berekeningen en hoog-niveau datastructuren.

Python is een stabiele en veelgebruikte taal. Het wordt in veel projecten en op verschillende manieren gebruikt: als primaire programmeertaal of voor het creëren van extensies en integratie van applicaties. Belangrijke toepassingsgebieden zijn webontwikkeling, machine learning en data-analyse, automatisering en systeembeheer. Momenteel staat Python op de derde plaats in de ranking. TIOBE.

Belangrijkste wijzigingen:

Een nieuwe high-performance parser op basis van PEG-grammatica's.

In de nieuwe versie is de huidige Python-parser, gebaseerd op LL(1) (CFG), vervangen door een nieuwe, high-performance en stabiele parser op basis van PEG (GLR). Parsers voor talen die worden voorgesteld door CFG's, zoals LR-parsers, vereisen een speciale lexicale analystep die de invoer opsplitst op basis van spaties, interpunctie, enzovoort. Dit is nodig, omdat deze parsers voorafgaande analyse gebruiken om sommige CFG's in lineaire tijd te verwerken. PEG's vereisen geen aparte lexicale analystep; de regels daarvoor kunnen samen met andere grammaticaregels worden opgenomen.

Nieuwe operatoren en functies

Er zijn twee nieuwe operatoren toegevoegd aan de ingebouwde dict-klasse: | voor het samenvoegen van woordenboeken en |= voor bijwerken.

Er zijn twee nieuwe functies toegevoegd aan de str-klasse: str.removeprefix(prefix) en str.removesuffix(suffix).

Type hint voor ingebouwde collectietypen

Deze release bevat ondersteuning voor generator syntaxis in alle standaard collecties die momenteel beschikbaar zijn.

def read_blog_tags(tags: list[str]) -> None:
for tag in tags:
print("Tag naam", tag)

Andere veranderingen

  • PEP 573 Toegang tot de toestand van een module via C-extensiemethoden

  • PEP 593 Flexibele functies en variabele annotaties

  • PEP 602 Python schakelt over op jaarlijkse stabiele releases

  • PEP 614 Verminderde grammaticabeperkingen voor decorateurs

  • PEP 615 Ondersteuning van de IANA-database voor tijdzones in de standaardbibliotheek

  • BPO 38379 het ophalen van geheugen wordt niet geblokkeerd voor herstelde objecten

  • BPO 38692 os.pidfd_open, voor procesbeheer zonder races en signalen;

  • BPO 39926 Unicode-ondersteuning is bijgewerkt naar versie 13.0.0

  • BPO 1635741, bij meervoudige initialisatie van Python in hetzelfde proces, is er geen geheugenlek meer

  • Python-collecties (range, tuple, set, frozenset, list, dict) zijn versneld met behulp van vectoraanroep PEP 590

  • Sommige Python-modules (_abc, audioop, _bz2, _codecs, _contextvars, _crypt, _functools, _json, _locale, operator, resource, time, _weakref) gebruiken nu meerfasige initialisatie, zoals gedefinieerd in PEP 489

  • Een aantal standaardbibliotheekmodules (audioop, ast, grp, _hashlib, pwd, _posixsubprocess, random, select, struct, termios, zlib) gebruiken nu een stabiele ABI, zoals gedefinieerd in PEP 384.

Bron: linux.org.ru

Koop betrouwbare webhosting met bescherming tegen DDoS, VPS VDS servers 🔥 Koop betrouwbare webhosting met bescherming tegen DDoS, VPS VDS servers | ProHoster