Python 3.9.0

Mashhur Python dasturlash tilining yangi barqaror versiyasi chiqdi.

Python yuqori darajadagi, umumiy maqsadli dasturlash tili boʻlib, ishlab chiquvchilarning unumdorligi va kodni oʻqish qobiliyatini oshirishga qaratilgan. Asosiy xususiyatlar dinamik terish, avtomatik xotirani boshqarish, to'liq introspektsiya, istisnolarni qayta ishlash mexanizmi, ko'p tarmoqli hisoblashni qo'llab-quvvatlash, yuqori darajadagi ma'lumotlar tuzilmalari.

Python barqaror va keng tarqalgan tildir. U ko'plab loyihalarda va turli imkoniyatlarda qo'llaniladi: asosiy dasturlash tili sifatida yoki kengaytmalar va ilovalar integratsiyasini yaratish uchun. Qo'llashning asosiy yo'nalishlari: veb-ishlab chiqish, mashinalarni o'rganish va ma'lumotlarni tahlil qilish, avtomatlashtirish va tizim boshqaruvi. Python hozirda reytingda uchinchi o'rinni egallab turibdi TIOBE.

Asosiy o'zgarishlar:

PEG grammatikalariga asoslangan yangi yuqori samarali tahlilchi.

Yangi versiyada LL(1) grammatikalari (KS-grammatikasi) asosidagi joriy Python parser PEG (PB-grammatika) asosidagi yangi yuqori unumdor va barqaror parser bilan almashtirildi. LR parsers kabi KS grammatikalari bilan ifodalangan tillar uchun parserlar maxsus leksik tahlil bosqichini talab qiladi, bu bo'shliq, tinish belgilari va boshqalarga ko'ra kirishni ajratadi. Bu zarur, chunki bu tahlilchilar ba'zi KS grammatikalarini chiziqli vaqtda qayta ishlash uchun tayyorgarlikdan foydalanadilar. RV grammatikalari alohida leksik tahlil bosqichini talab qilmaydi va uning qoidalari boshqa grammatika qoidalari bilan birga belgilanishi mumkin.

Yangi operatorlar va funksiyalar

O'rnatilgan dict sinfiga ikkita yangi operator qo'shildi, | lug'atlarni birlashtirish va |= yangilash uchun.

str sinfiga ikkita yangi funksiya qo'shildi: str.removeprefix(prefiks) va str.removesuffix(suffix).

O'rnatilgan to'plam turlari uchun ko'rsatma yozing

Ushbu nashr hozirda mavjud bo'lgan barcha standart to'plamlarda generator sintaksisini qo'llab-quvvatlashni o'z ichiga oladi.

def read_blog_tags(teglar: list[str]) -> Yo'q:
teglardagi teglar uchun:
print("Teg nomi", teg)

Boshqa o'zgarishlar

  • PEP 573 C kengaytirish usullari yordamida modul holatiga kirish

  • PEP 593 Moslashuvchan funktsiyalar va o'zgaruvchan izohlar

  • PEP 602 Python yillik barqaror nashrlarga o'tadi

  • PEP 614 Dekoratorlardagi yengillashtiruvchi grammatik cheklovlar

  • Standart kutubxonada PEP 615 IANA vaqt mintaqasi ma'lumotlar bazasini qo'llab-quvvatlash

  • BPO 38379 Chiqindilarni yig'ish tiklangan ob'ektlarni bloklamaydi

  • BPO 38692 os.pidfd_open, poygalar va signallarsiz jarayonlarni boshqarish uchun;

  • BPO 39926 Unicode qo'llab-quvvatlashi 13.0.0 versiyasiga yangilandi

  • BPO 1635741, Python bir xil jarayonda bir necha marta ishga tushirilganda Python endi oqmaydi

  • PEP 590 vektor chaqiruvi bilan tezlashtirilgan Python to'plamlari (diapazon, kortej, to'plam, muzlatilgan to'plam, ro'yxat, dict)

  • Ayrim Python modullari (_abc, audioop, _bz2, _codecs, _contextvars, _crypt, _functools, _json, _locale, operator, resource, time, _weakref) endi PEP 489 da belgilanganidek ko‘p fazali ishga tushirishdan foydalanadi.

  • Bir qator standart kutubxona modullari (audioop, ast, grp, _hashlib, pwd, _posixsubprocess, random, select, struct, termios, zlib) endi PEP 384 tomonidan belgilangan barqaror ABI dan foydalanadi.

Manba: linux.org.ru

a Izoh qo'shish