Python 3.9.0

Została wydana nowa stabilna wersja popularnego języka programowania Python.

Python to język programowania wysokiego poziomu ogólnego przeznaczenia, którego celem jest poprawa produktywności programistów i czytelności kodu. Główne cechy to dynamiczne pisanie, automatyczne zarządzanie pamięcią, pełna introspekcja, mechanizm obsługi wyjątków, obsługa obliczeń wielowątkowych, struktury danych wysokiego poziomu.

Python jest językiem stabilnym i szeroko rozpowszechnionym. Jest używany w wielu projektach i w różnych celach: jako podstawowy język programowania lub do tworzenia rozszerzeń i integracji aplikacji. Główne obszary zastosowań: tworzenie stron internetowych, uczenie maszynowe i analiza danych, automatyzacja i administracja systemami. Python zajmuje obecnie trzecie miejsce w rankingach TIOBE.

Główne zmiany:

Nowy, wysokowydajny parser oparty na gramatyce PEG.

W nowej wersji obecny parser Pythona oparty na gramatyce LL(1) (gramatyka KS) został zastąpiony nowym, wydajnym i stabilnym parserem opartym na gramatyce PEG (gramatyka PB). Parsery dla języków reprezentowanych przez gramatyki KS, takie jak parsery LR, wymagają specjalnego etapu analizy leksykalnej, który dzieli dane wejściowe według białych znaków, interpunkcji i tak dalej. Jest to konieczne, ponieważ te parsery wykorzystują przygotowanie do przetwarzania niektórych gramatyk KS w czasie liniowym. Gramatyki RV nie wymagają osobnego etapu analizy leksykalnej, a reguły dotyczące tego można określić wraz z innymi regułami gramatycznymi.

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(prefix) i str.removesuffix(suffix).

Podpowiedzi dotyczące typów wbudowanych kolekcji

To wydanie zawiera obsługę składni generatora we wszystkich obecnie dostępnych kolekcjach standardowych.

def read_blog_tags(tags: list[str]) -> Brak:
dla tagów w tagach:
print("Nazwa tagu", tag)

Inne zmiany

  • PEP 573 Dostęp do stanu modułu przy użyciu metod rozszerzeń C

  • PEP 593 Elastyczne funkcje i zmienne adnotacje

  • PEP 602 Python przechodzi do corocznych stabilnych wydań

  • PEP 614 Łagodzenie ograniczeń gramatycznych dotyczących dekoratorów

  • PEP 615 Obsługa bazy danych stref czasowych IANA w bibliotece standardowej

  • BPO 38379 Wyrzucanie elementów bezużytecznych nie blokuje odzyskanych obiektów

  • BPO 38692 os.pidfd_open, do kontroli procesów bez wyścigów i sygnałów;

  • Zaktualizowano obsługę Unicode BPO 39926 do wersji 13.0.0

  • BPO 1635741, Python nie przecieka już podczas wielokrotnej inicjalizacji Pythona w tym samym procesie

  • Kolekcje Pythona (zakres, krotka, zestaw, zamrożony zestaw, lista, dykt) przyspieszane 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) używają teraz inicjalizacji wielofazowej zgodnie z definicją w PEP 489

  • Wiele standardowych modułów bibliotecznych (audioop, ast, grp, _hashlib, pwd, _posixsubprocess, random,select, struct, termios, zlib) korzysta teraz ze stabilnego ABI zdefiniowanego przez PEP 384.

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

Dodaj komentarz