Python to język programowania wysokiego poziomu.
Po roku rozwoju, Ogłoszono wydanie wersji stabilnej a także początek fazy testów alfa języka programowania Python 3.12 i Python 3.13 (odpowiednio). Wspomniano, że ta nowa gałąź Pythona 3.12 będzie wspierana przez półtora roku, po czym przez kolejne trzy i pół roku będą generowane poprawki eliminujące luki.
Zaprezentowana nowa wersja Pythona 3.12 zawiera ulepszenia w zakresie elastyczność analizy f-string. Z tą poprawą teraz wiele ograniczeń można pominąć, ponieważ na przykład możesz teraz zawierać dowolne prawidłowe wyrażenie w Pythonie, w tym wyrażenia wielowierszowe, komentarze, ukośniki odwrotne i sekwencje specjalne Unicode. Dodatkowo, wewnętrzne ciągi znaków umożliwiają teraz ponowne użycie tych samych cudzysłowów, tj. wewnątrz można teraz ponownie użyć podwójnych cudzysłowów bez konieczności zmiany na pojedyncze cudzysłowy.
Na przykład:
f"""{f'''{f'{f"{1+1}"}'}'''}""
Można teraz dowolnie zagnieżdżać:
f"{f"{f"{f"{f"{f"{1+1}"}"}"}"}"}"
Kolejną wyróżniającą się zmianą jest obsługa izolowanych podinterpretatorów i oddzielnych blokad globalnych, które mają na celu zwiększenie efektywności wykorzystania zasobów w systemach wielordzeniowych, ponieważ dla różnych interpreterów w ramach procesu CPython umożliwia jednoczesne działanie kilku interpreterów w procesie. W obecnej postaci ta funkcja jest obecnie dostępna tylko za pośrednictwem C-API (obsługa Python API pojawi się w następnej głównej gałęzi).
Poza tym podkreśla się, żeZwiększono zawartość informacyjną komunikatów o błędach poszerzono także zakres wyjątków, oferując zalecenia mające na celu wyeliminowanie błędów typograficznych. Na przykład wyświetlane są teraz sugestie dotyczące importowania zapomnianych standardowych modułów bibliotecznych i sugestie dotyczące przedrostka „self”.
Dodano możliwość użycia protokołu buforowego w kodzie Pythona. Klasy udostępniające metodę „__buffer__()” mogą być teraz używane jako typy operujące bezpośrednio na danych binarnych w pamięci.
Moduł sys.monitoring jest proponowany do debugowania i profilowania, umożliwiając monitorowanie zdarzeń w CPython, takich jak wywołania, zwroty funkcji, wykonanie dowolnych linii kodu, wyjątki i przejścia przy minimalnym nakładzie pracy.
Interpreter implementuje obsługę podsystemu wydajności jądra Linuksa, który umożliwia określenie nazw funkcji Pythona podczas profilowania przy użyciu narzędzia wydajnościowego (poprzednio w śladach określano tylko nazwy funkcji C).
Jeśli chodzi o poprawę wydajności, wspomniano o tym kontynuacja optymalizacji, z którym Uzyskano całkowity wzrost wydajności szacowany na 5%., również został dodany eksperymentalne wsparcie dla optymalizatora binarnego BOLT do procesu kompilacji, zwiększając wydajność o 1-5%, podczas gdy wydajność pakietu asyncio znacznie się poprawiła (niektóre testy wykazują przyspieszenie o 75%).
Zaimplementowano wbudowane rozszerzanie wyrażeń listowych, co przyspiesza pracę ze wyrażeniami listowymi nawet dwukrotnie (w przypadku kodu aktywnie korzystającego ze wyrażeń listowych testy wykazały ogólny wzrost wydajności o 11%).
Aby poprawić bezpieczeństwo, zintegrowane implementacje Algorytmy SHA1, SHA3, SHA2-384, SHA2-512 i MD5 w hashlib zostały zastąpione z formalnie zweryfikowanymi opcjami z projektu HACL* (wbudowane implementacje stosowane są tylko w przypadku braku OpenSSL).
z inne zmiany które wyróżniają się:
- Moduł posiada rozszerzoną obsługę systemu Windows.
- Python implementuje ochronę przed przepełnieniem stosu.
Przyspieszono tworzenie klasy asyncio.Task. - Rozmiar obiektów Unicode został zmniejszony o 8 do 16 bajtów.
- Przyspieszono operacje na wyrażeniach regularnych re.sub(), re.subn() i re.Pattern.
- Uruchamianie kontroli isinstance() dla niektórych protokołów zostało przyspieszone od 2 do 20 razy.
- Znacząco (w niektórych testach aż do 64%) przyspieszono funkcje tokenize.tokenize() i tokenize.generate_tokens().
- Przyspieszono ładowanie atrybutów i wywoływanie metody super().
- Dla klas i funkcji ogólnych zaproponowano nową, bardziej zwartą składnię adnotacji typów.
- Moduł przeglądarki internetowej nie obsługuje już starszych przeglądarek, w tym Grail, Mosaic, Netscape, Galeon, Skipstone, Iceape, Firebird i Firefox do wersji 36.
- W ramach przygotowań do przyszłych optymalizacji zmieniono wewnętrzną reprezentację liczb całkowitych.
Na koniec, jak już wspomniano, rozpoczęły się testy alfa Pythona 3.13, w których pojawił się tryb kompilacji CPython bez globalnej blokady interpretera (GIL, globalna blokada tłumacza).
Gałąź Python 3.13 będzie w fazie alfa przez siedem miesięcy, podczas którego będą dodawane nowe funkcje i naprawiane błędy zgodnie z nowym harmonogramem rozwoju, prace nad nową gałęzią rozpoczynają się na pięć miesięcy przed wydaniem poprzedniej gałęzi i do czasu, gdy kolejna wersja osiągnie fazę testową alfa.
Następnie wersje beta będą testowane przez trzy miesiące, podczas których dodawanie nowych funkcji będzie zabronione, a cała uwaga zostanie skupiona na naprawianiu błędów. Przez ostatnie dwa miesiące przed wydaniem gałąź będzie w fazie Release Candidate, gdzie nastąpi ostateczna stabilizacja.
Wreszcie tak chcesz dowiedzieć się więcej na ten temat, możesz sprawdzić szczegóły w następujący link.