Python er et tolket programmeringsspråk på høyt nivå hvis filosofi legger vekt på lesbarheten til koden.
Etter et år med utvikling er den nye versjonen av programmeringsspråket Python, 3.11 , utgitt. Den nye grenen vil bli støttet i halvannet år, hvoretter det vil bli utgitt oppdateringer i ytterligere tre og et halvt år for å håndtere sårbarheter.
Samtidig startet alfatesting av Python 3.12-grenen (i henhold til den nye utviklingsplanen begynner arbeidet med en ny gren fem måneder før utgivelsen av den forrige grenen og når alfateststadiet ved utgivelsen av neste versjon).
Python 3.12-grenen vil være i alfa-utgivelser i syv måneder, hvor nye funksjoner vil bli lagt til og feil fikset. Etter det vil betatesting finne sted i tre måneder, hvor tillegg av nye funksjoner vil bli forbudt og full oppmerksomhet vil bli gitt til feilrettinger. De siste to månedene før lansering vil filialen være i lanseringskandidatstadiet, da vil endelig stabilisering finne sted.
De viktigste nye funksjonene i Python 3.11
Denne nye versjonen inkluderer betydelig arbeid for å optimalisere ytelsen . Den nye grenen inkluderer endringer knyttet til akselerasjon og innebygd distribusjon av funksjonskall , bruk av raske tolker for typiske operasjoner og optimaliseringer utviklet av Cinder- og HotPy-prosjektene. Avhengig av arbeidsmengden øker kodekjøringshastigheten mellom 10 % og 60 %. I gjennomsnitt økte ytelsen på pyperformance-testpakken med 25 %.
Bytekode-hurtigbuffermekanismen har blitt redesignet , noe som reduserer oppstartstiden for tolken med 10–15 %. Objekter som inneholder bytekode allokeres nå statisk av tolken. Dette eliminerer trinnene med å dekode bytekode hentet fra hurtigbufferen og konvertere objekter som inneholder bytekode for dynamisk plassering i minnet.
Støtte for unntaksgrupper er lagt til , noe som gir programmet muligheten til å generere og behandle flere forskjellige unntak samtidig. Nye unntakstyper, ExceptionGroup og BaseExceptionGroup, foreslås for gruppering og kombinasjon av flere unntak, og uttrykket «except*» er lagt til for å separate unntak innenfor en gruppe.
En spesiell LiteralString-type er lagt til som bare kan inkludere litterale strenger som er kompatible med LiteralString-typen (dvs. bare strenger og strenger av typen LiteralString, men ikke vilkårlige eller kombinerte strenger av typen str). LiteralString-typen kan brukes til å begrense overføringen av strengargumenter til funksjoner, og forhindre vilkårlig substitusjon av deler av strenger der sårbarheter kan oppstå, for eksempel når man genererer strenger for SQL-spørringer eller skallkommandoer.
I tillegg er det mulig å merke individuelle elementer i typeordbøker (TypedDict) med obligatoriske og ikke-påkrevde markeringer for å bestemme obligatoriske og valgfrie felt (som standard er alle deklarerte felt obligatoriske hvis total-parameteren ikke er satt til Usann).
Klasse-, metode- og funksjonsdekoratoren @dataclass_transform ble lagt til . Når den er spesifisert, behandler den statiske typekontrolløren objektet som om det brukte dekoratoren @dataclasses.dataclass.
Av de andre endringene som skiller seg ut i denne nye versjonen:
- Lagt til muligheten til å bruke atomgruppering ((?>...)) og sjalu (besittende) kvantifiserere (*+, ++, ?+, {m,n}+) i regulære uttrykk.
- TypeVarTuple-typen er lagt til, som tillater bruk av variable generikk, i motsetning til TypeVar, som ikke dekker én type, men et vilkårlig antall typer.
- Standardbiblioteket inkluderer tomllib-modulen med funksjoner for å analysere TOML-formatet.
- Add_note()-metoden er lagt til i BaseException-klassen, som gjør at et tekstnotat kan knyttes til unntaket, for eksempel for å legge til kontekstuell informasjon som ikke var tilgjengelig på det tidspunktet unntaket ble kastet.
- En spesiell type Selv er lagt til for å representere den gjeldende private klassen. Self kan brukes til å kommentere metoder som returnerer en forekomst av klassen din på en enklere måte enn å bruke TypeVar.
- Lagt til "-P" kommandolinjealternativ og PYTHONSAFEPATH miljøvariabel for å deaktivere automatisk tilkobling av potensielt usikre filstier til sys.path.
- py.exe-verktøyet for Windows-plattformen har blitt betydelig forbedret for å støtte "-V:"-syntaksen. / " i tillegg til "- . ».
- Mange C API-makroer har blitt konvertert til vanlige eller statiske innebygde funksjoner
- Uu, cgi, pipes, crypt, aifc, chunk, msilib, telnetlib, audioop, nis, sndhdr, imghdr, nntplib, spwd, xdrlib, cgitb, mailcap, ossaudiodev og sunau-modulene er avviklet og vil bli fjernet fra Python. 3.13 utgivelse.
- Fjernet PyUnicode_Encode*-funksjoner.
- TaskGroup-klassen ble lagt til asyncio-modulen med implementering av en asynkron kontekstbehandling som venter på at oppgavegruppen skal fullføres.
- Å legge til oppgaver til en gruppe gjøres ved å bruke create_task()-metoden.
Til slutt, hvis du er interessert i å lære mer om dette , kan du finne detaljene på følgende lenke.