پایتون 3.11 با بهبود عملکرد، طراحی مجدد کش و موارد دیگر وارد بازار شد

پــایتــون

پایتون یک زبان برنامه نویسی تفسیر شده سطح بالا است که فلسفه آن بر خوانایی کد آن تاکید دارد.

پس از یک سال توسعه ، نسخه جدید زبان برنامه نویسی پایتون 3.11 منتشر شد، شعبه جدید به مدت یک سال و نیم پشتیبانی می شود و پس از آن تا سه سال و نیم دیگر پچ های دارای آسیب پذیری تشکیل می شود.

در همان زمان، آزمایش آلفای شاخه پایتون 3.12 آغاز شد (طبق برنامه توسعه جدید، کار بر روی یک شعبه جدید پنج ماه قبل از انتشار شاخه قبلی شروع می شود و تا زمان نسخه بعدی به تست آلفا می رسد).

شعبه Python 3.12 به مدت هفت ماه در نسخه آلفا خواهد بود و در طی آن ویژگی های جدید اضافه می شود و باگ ها برطرف می شوند. پس از آن، آزمایش بتا به مدت سه ماه انجام می شود و در طی آن افزودن ویژگی های جدید ممنوع خواهد بود و توجه کامل به رفع اشکال خواهد شد. دو ماه آخر قبل از راه‌اندازی، شعبه در مرحله کاندید راه‌اندازی خواهد بود که در آن مرحله تثبیت نهایی انجام خواهد شد.

ویژگی های اصلی جدید پایتون 3.11

در این نسخه جدید کار قابل توجهی برای بهینه سازی عملکرد انجام شده است، زیرا شاخه جدید شامل تغییرات مرتبط است با شتاب و استقرار درون خطی فراخوانی های تابع، استفاده از مفسرهای سریع عملیات معمولی و همچنین بهینه سازی های تهیه شده توسط پروژه های Cinder و HotPy. بسته به نوع بار، سرعت اجرای کد بین 10 تا 60 درصد افزایش می یابد. به طور متوسط، عملکرد هنگام گذراندن مجموعه تست pyperformance 25٪ افزایش یافته است.

مکانیسم ذخیره سازی مجدداً طراحی شده است بایت کد، که زمان راه اندازی مترجم را 10-15٪ کاهش داد. اشیاء دارای کد و بایت کد در حال حاضر توسط مفسر به صورت ایستا تخصیص داده می شوند، که این امکان حذف مراحل بازگشایی بایت کد واکشی شده از حافظه پنهان و تبدیل اشیاء با کد برای قرار دادن آنها در حافظه پشته را فراهم می کند.

اضافه پشتیبانی از گروه های استثنایی، که به برنامه این امکان را می دهد که چندین استثنا مختلف را همزمان مطرح و پردازش کند. انواع استثناهای جدید ExceptionGroup و BaseExceptionGroup برای گروه بندی چندین استثنا با هم پیشنهاد می شوند و عبارت "except* "برای جدا کردن استثناها از یک گروه اضافه می شود.

یک نوع LiteralString ویژه اضافه شده است خیلی تنها می تواند شامل رشته های تحت اللفظی باشد که با نوع LiteralString سازگار است (یعنی رشته ها و رشته های خالی از نوع LiteralString، اما نه رشته های دلخواه یا ترکیبی از نوع str). نوع LiteralString می‌تواند برای محدود کردن ارسال آرگومان‌های رشته‌ای به توابع، جایگزینی دلخواه بخش‌هایی از رشته‌ها که می‌تواند منجر به آسیب‌پذیری شود، به عنوان مثال، هنگام تولید رشته‌ها برای کوئری‌های SQL یا دستورات پوسته استفاده شود.

علاوه بر آن، همچنین امکان علامت گذاری عناصر فردی دیکشنری ها فراهم شده است (TypedDict) با پرچم های Required و Not Required برای تعیین فیلدهای الزامی و اختیاری (به طور پیش فرض، اگر پارامتر کل روی تنظیم نشده باشد، به طور پیش فرض، همه فیلدهای اعلام شده مورد نیاز هستند. جعلی).

اضافه شده @dataclass_transform کلاس، روش و تابع تزئین، در صورت مشخص شدن، جستجوگر نوع استاتیک با شیء به گونه ای رفتار می کند که گویی از دکوراتور @dataclasses.dataclass استفاده می کند.

از دیگر تغییرات برجسته در این نسخه جدید:

  • قابلیت استفاده از گروه بندی اتمی ((?>…)) و کمیت کننده های حسادت (ملک) (*+، ++، ?+، {m،n}+) در عبارات منظم اضافه شده است.
  • نوع TypeVarTuple اضافه شده است که امکان استفاده از ژنریک متغیرها را فراهم می کند، برخلاف TypeVar که نه یک نوع، بلکه تعداد دلخواه از انواع را پوشش می دهد.
  • کتابخانه استاندارد شامل ماژول tomllib با توابعی برای تجزیه قالب TOML است.
  • متد ()add_note به کلاس BaseException اضافه شده است، که اجازه می دهد یک یادداشت متنی به استثنا متصل شود، به عنوان مثال برای اضافه کردن اطلاعات متنی که در زمان پرتاب استثنا در دسترس نبودند.
  • یک نوع خاص Self برای نمایش کلاس خصوصی فعلی اضافه شده است. Self را می توان برای حاشیه نویسی روش هایی استفاده کرد که نمونه ای از کلاس شما را به روشی ساده تر از استفاده از TypeVar برمی گرداند.
  • گزینه خط فرمان "-P" و متغیر محیطی PYTHONSAFEPATH برای غیرفعال کردن اتصال خودکار مسیرهای فایل بالقوه ناامن به sys.path اضافه شده است.
  • ابزار py.exe برای پلتفرم ویندوز به طور قابل توجهی برای پشتیبانی از نحو "-V:" بهبود یافته است. / " بعلاوه "- . ».
  • بسیاری از ماکروهای C API به توابع درون خطی منظم یا استاتیک تبدیل شده اند
  • ماژول‌های uu، cgi، pipes، crypt، aifc، chunk، msilib، telnetlib، audioop، nis، sndhdr، imghdr، nntplib، spwd، xdrlib، cgitb، mailcap، ossaudiodev، و sunau منسوخ شده‌اند و از Pythonth حذف خواهند شد. 3.13 انتشار.
  • توابع PyUnicode_Encode* حذف شد.
  • کلاس TaskGroup با پیاده سازی یک مدیر زمینه ناهمزمان که منتظر تکمیل گروه کاری است به ماژول asyncio اضافه شد.
  • افزودن وظایف به یک گروه با استفاده از متد ()create_task انجام می شود.

سرانجام اگر شما علاقه مند به دانستن بیشتر در مورد آن هستید، می توانید جزئیات را در اینجا بررسی کنید لینک زیر 


محتوای مقاله به اصول ما پیوست اخلاق تحریریه. برای گزارش یک خطا کلیک کنید اینجا.

اولین کسی باشید که نظر

نظر خود را بگذارید

نشانی ایمیل شما منتشر نخواهد شد. بخشهای موردنیاز علامتگذاری شدهاند با *

*

*

  1. مسئول داده ها: میگل آنخل گاتون
  2. هدف از داده ها: کنترل هرزنامه ، مدیریت نظرات.
  3. مشروعیت: رضایت شما
  4. ارتباط داده ها: داده ها به اشخاص ثالث منتقل نمی شوند مگر با تعهد قانونی.
  5. ذخیره سازی داده ها: پایگاه داده به میزبانی شبکه های Occentus (EU)
  6. حقوق: در هر زمان می توانید اطلاعات خود را محدود ، بازیابی و حذف کنید.