یک کامپایلر جدید JIT، اولین نسخه بدون GIL پایتون، خطاهای بهتر و بهبود تایپ، و حذف باتری های مرده همگی بخشی از پایتون ۳.۱۳ هستند.
اولین نسخه بتای Python 3.13 به تازگی منتشر شده است. این مقاله خلاصه ای از مهم ترین ویژگی های جدید در پایتون ۳.۱۳ و معنای آنها برای توسعه دهندگان پایتون را ارائه می دهد. ممکن است همه چیز از هماکنون تا اولین نسخه تولیدی ۳.۱۳ تغییر کند، اما اولین نسخه بتا به این معنی است که تمام ویژگیهای اضافهشده و تغییرات اصلی اکنون متوقف شدهاند.
ویژگی های جدید در اولین بتای پایتون ۳.۱۳
در اینجا اولین نگاهی به این ویژگی های جدید در نسخه بتای Python 3.13 است:
- JIT آزمایشی
- ساخت بدون GIL پایتون
- یک REPL جدید
- پیام های خطای بهبود یافته
- بهبود انواع پایتون
- دیگر “باتری های مرده” وجود ندارد
JIT آزمایشی
Python 3.11 مترجم تطبیقی تخصصی را معرفی کرد. هنگامی که مفسر تشخیص می دهد که برخی از عملیات به طور قابل پیش بینی شامل انواع مشابهی هستند، آن عملیات “تخصصی” می شوند. بایت کد عمومی که برای آن کد استفاده می شود با بایت کد مخصوص کار با آن انواع جایگزین می شود که افزایش سرعت را از ۱۰٪ تا ۲۵٪ برای آن مناطق کد ارائه می دهد.
Python 3.12 تخصص ها و اصلاحات بیشتری را برای مفسر به ارمغان آورد. اکنون، Python 3.13 به جای فقط بایت کد تخصصی افزایش سرعت حاصل هنوز خیلی زیاد نیست – شاید ۵٪ – اما راه را برای بهینه سازی های آینده که قبلاً امکان پذیر نبودند هموار می کند.
در حال حاضر، JIT آزمایشی در نظر گرفته میشود—بهطور پیشفرض فعال نیست، و تنها با کامپایل کردن CPython از منبع با پرچمهای خاص، میتوان آن را فعال کرد. اگر به مرور زمان عملکرد قابل توجهی را افزایش دهد (۵٪ یا بیشتر)، و بار مدیریتی زیادی را بر تیم CPython یا کاربران Python به طور کلی تحمیل نکند، به یک گزینه ساخت کاملاً پشتیبانی شده تبدیل خواهد شد. فعال شدن یا نبودن آن برای نسخههای رسمی همچنان به مدیران برای ساختهای CPython یک پلتفرم مشخص بستگی دارد.
چرخه انتشار پایتون
زبان برنامه نویسی پایتون سالانه نسخه های جدیدی را منتشر می کند، با نسخه بتای قفل شده در نیمه اول سال و انتشار نهایی در پایان سال. برنامهنویسان تشویق میشوند این آخرین نسخه را روی کدهای غیر تولیدی امتحان کنند، هم برای تأیید اینکه با برنامههای شما کار میکند و هم برای دریافت ایدهای درباره اینکه آیا کد شما از مجموعه ویژگیهای جدید و بهبود عملکرد در این آخرین نسخه سود میبرد یا خیر. p>
ساخت بدون GIL ‘free-threaded’ Python
اصطلاح رسمی نسخه های احتمالی آینده CPython بدون قفل مترجم جهانی (یا GIL) “CPython با رشته آزاد” است. این ساخت CPython به رشته ها اجازه می دهد تا به طور کامل به صورت موازی و بدون واسطه GIL اجرا شوند. برای این منظور، کارهای متصل به CPU که زمانی فقط از اجرای در چندین فرآیند بهره میبردند، میتوانند در رشتههای متعدد اجرا شوند.
CPython با رشته آزاد نیز آزمایشی است. بهطور پیشفرض در بیلدهای ارسالشده فعال نیست، بنابراین باید در زمان کامپایل فعال شود. اگر کار آینده با ساختهای آزاد رشتهای نشان دهد که میتواند عملکرد چند رشتهای را بدون تأثیر بر عملکرد تک رشتهای بهبود بخشد، به یک گزینه کاملاً پشتیبانیشده ارتقا مییابد. با گذشت زمان، ساخت CPython با رشته آزاد ممکن است پیشفرض شود.
یک REPL جدید
REPL یا مفسر تعاملی، هنگامی که پایتون را از خط فرمان بدون اجرای برنامه اجرا می کنید، راه اندازی می شود. REPL پایتون ۳.۱۳ دارای پیشرفتهایی است که آن را کمتر و شبیه به یک ویرایشگر واقعی میکند:
- خروجی کنسول اکنون به طور پیشفرض دارای رنگ فعال است. به عنوان مثال، این بهبود پیام های خطای غنی تری را ارائه می دهد.
- می توانید مرورگر کمکی تعاملی
pydoc
را با فشار دادن F1 باز کنید. - می توانید تاریخچه خط فرمان را با F2 مرور کنید.
- میتوانید با فشار دادن F3 بلوکهای بزرگ کد را راحتتر جایگذاری کنید تا حالت بلاک چسباندن ویژه فعال شود.
- شما فقط می توانید به جای
exit()
یاquit()
،exit
یاquit
را تایپ کنید REPL را ترک کنید.
توجه داشته باشید که این بهبودها در حال حاضر فقط در Linux و macOS در دسترس هستند. آنها در Microsoft Windows در دسترس نیستند، حتی در هنگام استفاده از میزبان کنسول ترمینال ویندوز جدید.
پیام های خطای بهبود یافته
ردیابی خطا در پایتون در دو نسخه اخیر دقیق تر و دقیق تر شده است. پایتون ۳.۱۳ به همین مسیر ادامه میدهد.
- اگر سعی کنید چیزی را وارد کنید که همان نام ماژول فعلی را دارد، پایتون یک خطای مفصل در این زمینه ارائه می دهد و شما را تشویق می کند که نام ماژول فعلی را تغییر دهید. این یک منبع بسیار مکرر از اشکالات است – و نه تنها برای مبتدیان. نامگذاری یک ماژول به نام چیزی در کتابخانه استاندارد یک اشتباه رایج است.
- اگر تابعی را با آرگومان کلمه کلیدی نادرست ارسال کنید، خطا بر اساس آنچه در تابع فراخوانی شده موجود است، برخی از آرگومان های صحیح احتمالی را پیشنهاد می کند.
بهبود انواع پایتون
سیستم اشاره نوع پایتون با هر نسخه جدید از نظر عملکرد و کاربرد گسترش یافته است. نسخه ۳.۱۳ سه تغییر بزرگ جدید اضافه می کند.
پارامترهای نوع از پیشفرضها پشتیبانی میکنند
typing.TypeVar
، typing.ParamSpec
، و typing.TypeVarTuple
همه به شما اجازه می دهند اگر هیچ نوع صریحاً مشخص نشده باشد، پیشفرضهای مورد استفاده را تعریف کنید. به عنوان مثال:
T = TypeVar("T", default=str)
در مواردی که T
در هنگام استفاده بهصراحت تعریف نشده باشد، str
پیشفرض در نظر گرفته میشود.
typing.TypeIs برای باریک کردن نوع
به طور کلی در پایتون، ما میتوانیم از isinstance()
برای تصمیمگیری بر اساس نوع خاصی بودن یا نبودن چیزی استفاده کنیم. typing.TypeIs
به ما اجازه می دهد همین کار را در مکانیسم های اشاره تایپ پایتون انجام دهیم. به این ترتیب، توابع مورد استفاده برای اعتبارسنجی اینکه آیا چیزی یک نوع معین است یا نه، می توانند حاشیه نویسی شوند تا نشان دهند که آن رفتار محدود کننده را انجام می دهند، نه فقط یک نوع برگشتی. این به عنوان راهی برای افزودن پوشش دقیق بررسی کننده نوع به آن توابع مفید است.
تایپ کردن.ReadOnly برای حاشیه نویسی فقط خواندنی
نوع typing.TypedDict
برای حاشیه نویسی لغت نامه ها با انواع ثابت برای مقادیر مرتبط با کلیدهای خاص ایجاد شده است. typing.Readonly
به شما امکان میدهد مقادیر خاصی را در TypedDict بهعنوان فقط خواندنی حاشیهنویسی کنید. الف>. یک مثال لیستی است که فقط میتوانید به آن اضافه کنید یا از آن بیرون بیاورید، نه اینکه با رشته یا نوع دیگری جایگزین کنید.
دیگر “باتری های مرده” وجود ندارد
Python 3.11 تعداد زیادی از ماژول های کتابخانه استاندارد پایتون را شناسایی کرد که منسوخ شده بودند و دیگر نگهداری نمی شدند. برنامه این بود که آنها را برای ۳.۱۱ و ۳.۱۲ به عنوان منسوخ علامت گذاری کنیم و سپس آنها را به طور کامل در Python 3.13 حذف کنیم. از هماکنون، آن «باتریهای مرده» (همانطور که به آنها گفته میشود) اکنون برای همیشه حذف شدهاند. بسیاری از ماژول های حذف شده را می توان با ماژول های شخص ثالث جایگزین کرد، یا عملکرد آنها را می توان با استفاده از سایر مؤلفه های کتابخانه استاندارد تقلید کرد.
کاربران میتوانند انتظار داشته باشند که منسوخ شدنهای بیشتری در آینده وجود داشته باشد. سه نسخه از پایتون نیز. بیشتر آنها روش هایی برای اجزای مختلف کتابخانه استاندارد هستند که به ندرت استفاده می شوند یا مستند نیستند.
پست های مرتبط
بهترین ویژگی ها و اصلاحات جدید در پایتون ۳.۱۳
بهترین ویژگی ها و اصلاحات جدید در پایتون ۳.۱۳
بهترین ویژگی ها و اصلاحات جدید در پایتون ۳.۱۳