Was ist neu in Python 3.11?
Python 3.11.2 ist die neueste Version der beliebten Programmiersprache und enthält eine Reihe neuer Funktionen und Verbesserungen. In diesem Blogartikel werfen wir einen Blick auf einige der neuen Funktionen in Python 3.11 und geben Beispielcode, um Ihnen den Einstieg zu erleichtern.
Zusammenfassung
Python 3.11 ist 10–60 % schneller als 3.10. Gemessen wurde eine 1,25-fache Beschleunigung gegenüber der Standard-Benchmark-Suite. exceptionEs gibt speedVerbesserungen syntax.
Ausnahmen
Von nun an können Sie mithilfe von Ausnahmegruppen mehrere Ausnahmen auslösen.
PEP 654 führt Sprachfunktionen ein, die es einem Programm ermöglichen, mehrere unabhängige Ausnahmen gleichzeitig auszulösen und zu behandeln. Die integrierten TypenExceptionGroupundBaseExceptionGroupermöglichen es, Ausnahmen zu gruppieren und gemeinsam auszulösen, und die neueexcept*Syntax verallgemeinert sichexcept, um Untergruppen von Ausnahmegruppen abzugleichen.
https://docs.python.org/3/whatsnew/3.11.html#whatsnew311-pep654
Sie können Ihrer Ausnahme auch Notizen hinzufügen. Auf diese Weise können Sie auf einfache Weise weitere Informationen angeben. Sie müssen die Ausnahme mit abfangen, try exceptdann müssen Sie eine Notiz hinzufügen und sie erneut auslösen
try:
i = 1 / 0
except Exception as e:
e.add_note("New Note: Zero Division Error")
raise
Traceback (most recent call last):
File "C:/Users/Sarper/Desktop/test.py", line 2, in <module>
i = 1 / 0
ZeroDivisionError: division by zero
New Note: Zero Division Error
Der neue Typ ist „add“ Self, was normal ist self.
Neue Funktionen im Zusammenhang mit Typhinweisen
In diesem Abschnitt werden wichtige Änderungen behandelt, die Hinweise vom Typ PEP 484 und das typingModul betreffen.
Hier ist ein Beispiel:
from typing import Self
class MyClass:
def __init__(self, num):
self.num = num
def create_class(self) -> Self:
return MyClass(3) # returning new class
my_class = MyClass(2)
print(my_class.create_class())
# OUTPUT:
# <__main__.MyClass object at 0x000002477E1D0250>
from typing import Self
class MyClass:
def __init__(self, num):
self.num = num
def return_class(self) -> Self:
return self # returning self
my_class = MyClass(2)
print(my_class.return_class())
# OUTPUT:
<__main__.MyClass object at 0x0000014B89E71350>
Requiredund NotRequiredbieten eine einfache Möglichkeit, zu kennzeichnen, ob einzelne Elemente in einem TypedDictvorhanden sein müssen. Bisher war dies nur durch Vererbung möglich.
Alle Felder sind weiterhin standardmäßig erforderlich, es sei denn, der Gesamtparameter ist auf festgelegt False. In diesem Fall sind alle Felder weiterhin standardmäßig nicht erforderlich. Im Folgenden wird beispielsweise ein TypedDictmit einem erforderlichen und einem nicht erforderlichen Schlüssel angegeben:
Das Erstellen spezieller Wörterbücher ist eine leistungsstarke Funktion, wenn Sie Bibliotheken erstellen und Fehler reduzieren möchten, die vom Benutzer ausgehen können.
class Movie(TypedDict):
title: str
year: NotRequired[int]
m1: Movie = {"title": "Black Panther", "year": 2018} # OK
m2: Movie = {"title": "Star Wars"} # OK (year is not required)
m3: Movie = {"year": 2022} # ERROR (missing required field title)
class Movie(TypedDict, total=False):
title: Required[str]
year: int
asyncio contextlib dataclasses datatime enum fcntl fractions functools haslib inpect locale logging math operator os pathlib re shutlit socket sqlite3 string sys sysconfig tempfile threading time tkinter traceback typing unicodedata unittest venv warnings zipfile
Weitere Informationen finden Sie hier
Betriebsbeschleunigungen
- Binäre Operationen
x+x; x*x; x-x;10 % - Tiefgestellt
a[i]10–25 % - Store-Index
a[i] = z10–25 % - Anrufe
f(arg)C(arg)20 % - Globale Variable laden
printlen[1 ] - Attribut laden
o.attr[ 3] - Lademethoden für Aufruf
o.meth()10–20 % - Speichern Sie das Attribut
o.attr = z2 % in pyperformance - Auspacksequenz
*seq8 %
Quelle
https://docs.python.org/3/whatsnew/3.11.html

![Was ist überhaupt eine verknüpfte Liste? [Teil 1]](https://post.nghiatu.com/assets/images/m/max/724/1*Xokk6XOjWyIGCBujkJsCzQ.jpeg)



































