Python 3.9.0

Wydano nową stabilną wersję popularnego języka programowania Python.

Python to wysokopoziomowy język programowania ogólnego przeznaczenia, skoncentrowany na zwiększaniu wydajności programisty i czytelności kodu. Główne cechy to dynamiczna typizacja, automatyczne zarządzanie pamięcią, pełna introspekcja, mechanizm obsługi wyjątków oraz wsparcie dla obliczeń wielowątkowych i wysokopoziomowych struktur danych.

Python to stabilny i szeroko stosowany język. Wykorzystywany jest w wielu projektach i w różnych rolach: jako główny język programowania lub do tworzenia rozszerzeń i integracji aplikacji. Główne obszary zastosowań to: rozwój webowy, uczenie maszynowe i analiza danych, automatyzacja oraz administracja systemowa. Obecnie Python zajmuje trzecie miejsce w rankingu TIOBE.

Główne zmiany:

Nowy wydajny parser oparty na gramatykach PEG.

W nowej wersji obecny parser Pythona oparty na gramatykach LL(1) (gramatyka kontekstowa) został zastąpiony nowym wydajnym i stabilnym parserem opartym na PEG (gramatyka podwyższonego porządku). Analizatory dla języków przedstawionych jako gramatyki kontekstowe, takie jak analizatory LR, wymagają specjalnego kroku analizy leksykalnej, który dzieli dane wejściowe zgodnie z przestrzeniami, interpunkcją itd. Jest to konieczne, ponieważ analizatory te wykorzystują analizę wstępną do przetwarzania niektórych gramatyk kontekstowych w czasie liniowym. Gramatyki podwyższonego porządku nie wymagają osobnego kroku analizy leksykalnej, a zasady dla niego mogą być zawarte razem z innymi zasadami gramatyki.

Nowe operatory i funkcje

Do wbudowanej klasy dict dodano dwa nowe operatory, | do łączenia słowników i |= do aktualizacji.

Do klasy str dodano dwie nowe funkcje: str.removeprefix(prefiks) oraz str.removesuffix(sufiks).

Sugestie typów dla wbudowanych typów kolekcji

W tej wersji włączono wsparcie dla składni generatorów we wszystkich standardowych kolekcjach dostępnych obecnie.

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

Inne zmiany

  • PEP 573 Dostęp do stanu modułu za pomocą metod rozszerzenia C

  • PEP 593 Elastyczne funkcje i zmienne adnotacji

  • PEP 602 Python przechodzi na coroczne stabilne wydania

  • PEP 614 Łagodzące ograniczenia gramatyczne dla dekoratorów

  • PEP 615 Wsparcie bazy danych IANA dotyczącej stref czasowych w standardowej bibliotece

  • BPO 38379 zbieranie śmieci nie blokuje przywróconych obiektów

  • BPO 38692 os.pidfd_open, do zarządzania procesami bez wyścigów i sygnałów;

  • BPO 39926 wsparcie Unicode zaktualizowane do wersji 13.0.0

  • BPO 1635741, przy wielokrotnej inicjalizacji Pythona w tym samym procesie, nie występuje już wyciek pamięci

  • Kolekcje Pythona (range, tuple, set, frozenset, list, dict) przyspieszone za pomocą wywołania wektorowego PEP 590

  • Niektóre moduły Pythona (_abc, audioop, _bz2, _codecs, _contextvars, _crypt, _functools, _json, _locale, operator, resource, time, _weakref) teraz używają wielofazowej inicjalizacji, jak określono w PEP 489

  • Kilka standardowych modułów bibliotek (audioop, ast, grp, _hashlib, pwd, _posixsubprocess, random, select, struct, termios, zlib) teraz korzysta z stabilnego ABI, określonego przez PEP 384.

Źródło: linux.org.ru

Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS 🔥 Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS | ProHoster