Lees meer over de opwindende functies in Python 3.12 die uw leven als ontwikkelaar gemakkelijker zullen maken.

Python is van plan om versie 3.12 van de taal in oktober 2023 uit te brengen. Deze versie biedt een scala aan opwindende functies en verbeteringen. Het doel is om uw codeerervaring te verbeteren door een efficiënter en krachtiger platform aan te bieden, waarmee u uw codeervaardigheden kunt verbeteren.

1. Verbeterde foutmeldingen

Python heeft de foutmeldingen in recente versies voortdurend verbeterd. De 3.11 release introduceerde nauwkeurigere foutmeldingen door de exacte posities binnen lijnen aan te geven.

Python 3.12 tilt deze verbeteringen naar een hoger niveau, met de volgende toevoegingen:

  • Suggesties voor ontbrekende modules ("ben je vergeten X te importeren?") omvatten nu modules uit de standaardbibliotheek.
  • Verbeterde foutsuggesties voor veelvoorkomende syntaxisfouten met betrekking tot imports. Als je bijvoorbeeld hebt importeer p van m in uw code verschijnt er een foutmelding waarin u wordt gevraagd of u van plan was te schrijven vanaf m import p.
  • Importfouten voor een bepaalde module bevatten nu suggesties uit de naamruimte van de geïmporteerde module.
  • NaamError suggesties nu ook opnemen zelf toegevoegd aan de naam wanneer deze wordt opgeworpen binnen een klasse-instantie. Als de naam bijvoorbeeld snelheid is niet gedefinieerd, zal de foutmelding voorstellen zelf.snelheid als mogelijke correctie. Dit is vooral handig sinds het weglaten zelf bijvoorbeeld variabelen zijn een veelvoorkomende bron van fouten in klasseninstanties.

2. Ondersteuning voor de Linux Perf Profiler

De veelgebruikte Linux-profilertool, prestatie, kan nu werken met Python 3.12-programma's. In het verleden was het alleen gericht op het volgen van bewerkingen op C-niveau binnen de Python-runtime.

Met Python 3.12 kun je nu perf activeren om ook details over Python-programma's te verzamelen. Je kunt het activeren op omgevingsniveau of binnen een Python-programma met behulp van de sys.activate_stack_trampoline functie.

3. Typ hintverbeteringen

Sinds de introductie in Python 3.5, heeft Python's type-hinting-syntaxis linting-tools in staat gesteld om een ​​breed scala aan fouten van tevoren te detecteren. Met elke volgende release is het typesysteem van Python geëvolueerd om een ​​breder scala aan gebruiksscenario's te omvatten, met verbeterde typefuncties.

GetyptDict

Python 3.12 introduceert de gebruik van TypedDicts als een bron voor hints naar trefwoordargumenten in functies. Dit maakt gebruik van de generieke variant Unpack, die versie 3.11 heeft geïntroduceerd.

Hier is een voorbeeld ter illustratie van deze functie:

klasFilm(GetyptDict):
naam: str
jaar: int

deffoe(**kwargs: uitpakken[Film]) -> Geen: ...

In dit geval de functie foe kan trefwoordargumenten ontvangen met namen en typen die overeenkomen met de inhoud van de Movie TypedDict: naam van type str En jaar van type int.

Deze verbetering blijkt waardevol bij het typen van functies die optionele trefwoordargumenten zonder standaardwaarden accepteren.

Typ parametersyntaxis

Python 3.12 introduceert een meer beknopte syntaxis voor het specificeren van typen in generieke klassen, functies of type-aliassen.

Stel je de volgende situatie voor:

# de oude methode
van typen importeren TypeVar
_T = TypeVar("_T")
deffunc(a: _T, b: _T) -> _T:
...
# de nieuwe typeparametermethode
deffunc[T](a: T, b: T) -> T:
...

Met de nieuwe syntaxis is het niet nodig om TypeVar expliciet te importeren. In plaats daarvan kunt u de functie[T] syntaxis om generieke typereferenties aan te geven. Het is ook mogelijk om typegrenzen te definiëren, zoals specificeren dat een type een van een groep typen moet zijn. Deze typen zelf kunnen echter niet generiek zijn. Een voorbeeld van deze syntaxis is functie[T: (str, int)].

4. Afvalinzameling

In Python 3.12, de Garbage collection (GC) mechanisme is veranderd. Voorheen werd de GC uitgevoerd wanneer een object werd toegewezen.

Vanaf Python 3.12 werkt de GC echter uitsluitend binnen de eval breker mechanisme in de bytecodelus van Python. Met andere woorden, het loopt tussen de uitvoering van de ene bytecode en de volgende.

Bovendien activeert de GC ook wanneer CPython's signal-handler-checking-mechanisme wordt aangeroepen. Deze aanpassing maakt periodieke opschoning mogelijk tijdens langlopende oproepen naar C-extensies buiten de runtime.

Onthulling van Python 3.12

Python 3.12 introduceert een reeks opwindende functies en verbeteringen, die een revolutie teweegbrengen in de codeerervaring voor jou. Met verbeterde foutmeldingen, verbeterde typemogelijkheden, ondersteuning voor de Linux Perf Profiler en geoptimaliseerde afvalverzameling, voorziet Python 3.12 u van de tools om hoogwaardige code te schrijven efficiënt. Omarm de kracht van Python en til uw codeervaardigheden naar nieuwe hoogten.