Programovanie

Python 3.9: Čo je nové a lepšie

Python 3.9, ktorý bol dnes uvedený na trh, prináša výrazné zmeny v vlastnostiach jazyka aj v tom, ako je jazyk vyvíjaný. Python si v posledných rokoch získal popularitu a jeho použitie explodovalo v rýchlo sa rozvíjajúcich oblastiach, ako sú dátová veda a strojové učenie. Projekt tvrdo pracuje na tom, aby držal krok so všetkými novými požiadavkami.

Tu je prehľad všetkých veľkých nových funkcií v Pythone 3.9.

Python prechádza na ročný cyklus vydávania

Až do tohto okamihu bol Python vyvíjaný a vydávaný s osemnásťmesačnou kadenciou. PEP 602 navrhol, aby vývojový tím Pythonu prijal ročný cyklus vydávania a tento návrh bol prijatý.

Ročný cyklus vydávania znamená menej funkcií na jedno vydanie, ale tiež to znamená rýchlejšiu spätnú väzbu na testovanie funkcií, menej potenciálne zlomových zmien pre každé vydanie, a teda väčšiu motiváciu pre používateľov a manažérov distribúcie Linuxu, aby častejšie aktualizovali Python. Znamená to tiež, že nové funkcie navrhnuté neskoro v rámci vývojového cyklu nebudú trvať tak dlho, kým sa zavedú do nového vydania.

Nový časový rozvrh znamená, že Python 3.9 sa začne dodávať v októbri 2020. Python 3.10 oficiálne začal vývoj pred vývojom verzie alfa 19. mája 2020, do fázy vývoja verzie alfa vstúpi, keď sa bude dodávať program Python 3.9, a bude sa dodávať v októbri 2021. Budúce vydania Pythonu budú nasledovať rovnaký vzor.

Python je predvolene rýchlejší

Každá revízia Pythonu má oproti predchádzajúcej verzii vylepšenia výkonu. Python 3.9 prináša dve veľké vylepšenia, ktoré zvyšujú výkon bez toho, aby ste vyžadovali akékoľvek zmeny v existujúcom kóde.

Prvé vylepšenie spočíva vo väčšom využívaní vectorcall protokol zavedený v Pythone 3.8. vectorcall zrýchľuje mnoho bežných volaní funkcií minimalizovaním alebo elimináciou dočasných objektov vytvorených pre hovor. V Pythone 3.9 je niekoľko vstavaných prvkov Pythonu - rozsah, n-tica, množina, frozenset, zoznam, dikt - použitie vectorcall interne na urýchlenie vykonania.

Druhým veľkým vylepšovačom výkonu je efektívnejšia analýza zdrojového kódu Pythonu. Nový syntaktický analyzátor pre runtime CPython nebol navrhnutý na riešenie problémov s výkonom, ale skôr na riešenie vnútorných nezrovnalostí v pôvodnom syntaktickom analyzátore. Dôležitou výhodou na okraji je rýchlejšia analýza, najmä pri veľkých objemoch kódu.

Viac funkcií reťazca a slovníka v jazyku Python

Python uľahčuje manipuláciu s bežnými dátovými typmi a Python 3.9 túto jednoduchosť rozširuje o nové funkcie pre reťazce a slovníky. Pre reťazce existujú nové metódy na odstránenie predpôn a prípon, operácie, ktorých odstránenie si dlho vyžadovalo veľa manuálnej práce. Pre slovníky teraz existujú zjednotené operátory, jeden na zlúčenie dvoch slovníkov do nového slovníka a jeden na aktualizáciu obsahu jedného slovníka s iným slovníkom.

Dekoratéri prichádzajú o určité obmedzenia

Dekoratéri vám umožňujú zabaliť funkcie Pythonu a programovo tak zmeniť ich správanie. Predtým dekoratéri mohli pozostávať iba zo symbolu @, názvu (napr. func) alebo bodkovaný názov (func.method) a voliteľne jeden hovor (func.method (arg1, arg2)). S Pythonom 3.9 môžu dekoratéri teraz pozostávať z ľubovoľného platného výrazu.

Jedným dlhotrvajúcim spôsobom, ako obísť toto obmedzenie, bolo vytvorenie funkčného alebo lambda výrazu, ktorý by pri použití ako dekoratéra znamenal zložitejší výraz. Teraz bude stačiť akýkoľvek výraz, ak poskytne niečo, čo môže fungovať ako dekorátor.

Nové operácie typu Python

Počas posledných niekoľkých verzií rozšíril Python podporu pre tipovanie typov. Je to hlavne kvôli vláknam a kontrolám kódu; typy sa za behu v CPythone nevynucujú a neexistujú žiadne plány na to, aby sa z Pythonu stal staticky napísaný jazyk. Tipovanie typu je ale mocný nástroj na zabezpečenie konzistencie vo veľkých kódových základniach, takže kód Pythonu môže mať výhody z toho, že má tipy na typy.

Dve nové funkcie pre tipovanie a anotácie typov sa dostali do Pythonu 3.9. V jednom type sú tipy pre obsah zbierok - napríklad zoznamy a slovníky - teraz v Pythone dostupné natívne. To znamená, že môžete napríklad opísať zoznam ako zoznam [int] - zoznam celých čísel - bez potreby písanie na stroji knižnica na to.

Druhým doplnkom mechanizmov písania v jazyku Python sú flexibilné funkcie a variabilné anotácie. To umožňuje použitie Anotované typ na opísanie typu pomocou metadát, ktoré je možné preskúmať vopred (pomocou nástrojov na prekladanie) alebo za behu programu. Napríklad Anotované [int, ctype ("char")] by sa dalo použiť na popísanie celého čísla, ktoré by sa malo považovať za a char napíš do C. Štandardne by Python s takouto anotáciou neurobil nič, ale mohli by ho použiť lintery kódu.

Vylepšenia vnútorných priestorov Pythonu

Čistenie, vylepšovanie a modernizácia vnútorných priestorov Pythonu je pre vývojárov Pythonu neustála iniciatíva a Python 3.9 má v tomto duchu niekoľko zmien.

Prvým z nich je redizajn spôsobu interakcie modulov s dovoznými mechanizmami. Doplnkové moduly Pythonu, napísané v jazyku C, môžu teraz používať nový mechanizmus načítania, vďaka ktorému sa budú pri importe správať viac ako bežné moduly Pythonu. Niekoľko modulov v štandardnej knižnici Pythonu novo podporuje toto správanie: _abc, audioop, _bz2, _codecs, _contextvars, _crypt, _functools, _json, _locale, operátor, zdroj, čas, _weakref. Nový mechanizmus načítania umožňuje nielen flexibilnejšie narábanie s rozširujúcimi modulmi v jazyku Python, ale umožňuje aj nové funkcie, ako napríklad pokročilé správanie pri pripájaní.

Druhou iniciatívou vyčistenia je stabilné interné ABI pre CPython, u ktorého je zaručené, že vydrží po celý život Pythonu 3. Historicky je každá hlavná revízia Pythonu nekompatibilná s ABI s predchádzajúcimi verziami, čo si vyžaduje prekompilovanie rozširujúcich modulov pre každú novú verziu. Odteraz budú všetky rozširujúce moduly, ktoré používajú stabilné ABI, pracovať vo verziách Pythonu. S Pythonom 3.9 používajú nasledujúce moduly v štandardnej knižnici stabilné ABI: audioop, ast, grp, _hashlib, pwd, _posixsubprocess, random, select, struct, termios, zlib.

Ďalšie zmeny v Pythone 3.9

  • Štandardná knižnica Pythonu teraz podporuje databázu časových pásiem IANA. Uvedená databáza je dobre udržiavaná a široko používaná a priamy spôsob jej použitia v knižnici Pythonovej datetime bude veľký, er, šetrí čas.
  • Nové metódy reťazcov umožňujú ľahké odstránenie predpôn a prípon. Toto je jeden z tých bežných scenárov každodenného používania, ktoré si vyžadovali trochu príliš veľa informácií, než sa zdalo potrebné. Nové .removeprefix () a .removesuffix () metódy vrátia upravenú kópiu reťazca mínus príslušnú predponu alebo príponu, za predpokladu, že v reťazci existujú.

Ako urobiť viac s Pythonom

  • 4 kontroly typu Pythonu, aby bol váš kód čistý
  • Štýl Pythonu: 5 nástrojov na vyčistenie kódu Pythonu
  • Ako pracovať s dátovým typom zoznamu Python
  • Ako zabaliť aplikácie v Pythone s Aktovkou BeeWare
  • Ako bežať Anakondu bok po boku s ostatnými Pytónmi
  • Ako používať dátové triedy Pythonu
  • Začnite s asynchronizáciou v Pythone
  • Ako používať asyncio v Pythone
  • 3 kroky na generálnu opravu asynchrónneho kódu Python
  • Ako používať program PyInstaller na vytvorenie spustiteľných súborov Pythonu
  • Výukový program pre Cython: Ako zrýchliť Python
  • Ako inteligentne nainštalovať Python
  • Ako spravovať projekty Pythonu pomocou Poetry
  • Ako spravovať projekty Pythonu pomocou Pipenv
  • Virtualenv a venv: Vysvetlenie virtuálnych prostredí Pythonu
  • Python virtualenv a venv robí a nerobí
  • Vysvetlenie vlákien a podprocesov v jazyku Python
  • Ako používať debugger Pythonu
  • Ako používať timeit na profilovanie kódu Pythonu
  • Ako používať cProfile na profilovanie kódu Pythonu
  • Ako previesť Python na JavaScript (a späť)
$config[zx-auto] not found$config[zx-overlay] not found