پایتون به یک چرخه انتشار سالانه تغییر رویه میدهد
تا این مرحله، پایتون در دورههای هجده ماهه توسعه پیدا کرده و منتشر شده است. اما مطابق دستورالعمل PEP 602 قرار بر این است که گروه توسعه پایتون به یک چرخه انتشار سالانه تغییر رویه دهد.
چرخه انتشار سالانه به این معنا است که ما باید شاهد قابلیتهای کمتری در هر انتشار باشیم، اما از طرف دیگر این اقدام به بازخوردهای سریعتر آزمايشات قابلیتها، تغییرات احتمالی کمتر برای هر نسخه، و در نتیجه انگیزه بیشتر برای کاربران و مدیران توزیع لینوکس برای ارتقای پایتون منجر خواهد شد.
این جدول زمانی جدید باعث شده تا Python 3.9 در اکتبر 2020 عرضه شود. Python 3.10 رسما کار خود را در 19 می 2020 آغاز کرده بود که بعد از ارائه Python 3.9 وارد فاز توسعه آلفا خواهد شد. انتشار نسخههای آینده پایتون نیز از همین الگو پیروی خواهد کرد.
پایتون به طور پیش فرض سریعتر خواهد شد
هر نسخه جدیدی از پایتون نسبت به نسخه قبلی از وضعیت عملکرد بهتری برخوردار بوده است. Python 3.9 دو پیشرفت بزرگ داشته که بدون نیاز به تغییر کدهای موجود وضعیت عملکرد را بهبود میبخشد.
اولین پیشرفت مربوط به استفاده بیشتر از پروتکل vectorcall است که در Python 3.8 معرفی شد. Vectorcall با به حداقل رساندن یا حذف اشیای موقت ایجاد شده برای فراخوانی بسیاری از توابع رایج، اجرا شدن آنها را سریعتر میکند. در Python 3.9 با استفاده از vectorcall اجرای بسیاری از توابع مثل range, tuple, set, frozenset, list, dict سرعت بیشتری پیدا خواهد کرد.
دومین ارتقای بزرگ وضعیت عملکرد مربوط به تجزیه و تحلیل کد منبع پایتون است. تحلیلگر جدید CPython runtime برای آدرس دهی مشکلات عملکردی طراحی نشده بود، اما یک مزیت مهم به ویژه برای حجم های زیادی از کد، امکان تجزیه و تحلیل سریعتر آن است.
توابع دیکشنری و رشتههای بیشتر
پایتون تغییر و دستکاری انواع دادههای رایج را آسان میکند و Python 3.9 این ویژگی را با قابلیتهای جدید رشتهها و دیکشنریها گسترش میدهد. متدهای جدیدی برای حذف پیشوندها و پسوندهای رشتهها و انجام عملیات هایی که برای دستیابی به آنها به انجام کارهای دستی زیادی نیاز بود تهیه شده است. در مورد دیکشنریها نیز حالا دو اپراتور وجود دارد که از یکی برای ادغام دو دیکشنری در یک دیکشنری جدید و از دیگری برای بهروزرسانی محتوای یک دیکشنری با دیکشنری دیگر استفاده میشود.
برخی محدودیتهای Decorator-ها از بین میرود
Decorator-ها دستورالعمل سادهای برای فراخوانی توابع مرتبه بالا را برای ما فراهم میکنند. به عبارت دیگر decorator تابعی است که تابع دیگر را دریافت میکند و رفتار آن را تغییر میدهد (بدون آن که ماهیت خود تابع تغییر کند). در گذشته Decorator-ها تنها میتوانستند شامل نماد @، یک نام (برای مثال func) یا یک نام نقطه (func.method) و یک فراخوانی واحد (func.method(arg1, arg2)) باشند. با Python 3.9 حالا Decorator-ها میتوانند از عبارت معتبری تشکیل شده باشند.
عملگرهای جدید پایتون
در چند نسخه اخیر، پایتون پشتیبانی از Type hinting را گسترش داده است. Type hinting ابزاری قدرتمندی برای اطمینان از سازگاری در کدبیسهای بزرگ است. دو قابلیت جدید برای type hinting و type annotations در Python 3.9 گنجانده شده است. حالا شما میتوانید بدون نیاز به کتابخانه typing یک لیست از مقادیر عددی را به عنوان list[int] توصیف کنید.
دومین مورد مربوط به مکانیزمهای typing به شما اجازه میدهد از نوع Annotated که برای توصیف نوع فراداده استفاده شده به کار میرود استفاده کنید. برای نمونه، میتوان از Annotated[int, ctype("char")] برای توصیف یک مقدار عددی استفاده کرد.
بهینه سازیهای داخلی پایتون
پاکسازی، اصلاح و مدرن سازی داخلی پایتون یکی از ابتکارات همیشگی توسعه دهندگان پایتون بوده است و Python 3.9 نیز چند تغییر در این زمینه داشته است.
اولین تغییر طراحی مجدد نحوه تعامل ماژولها با ورود تجهيزات است. ماژولهای افزونه پایتون که در C نوشته شده است حالا میتواند از یک مکانیزم بارگیری جدید استفاده کند تا در زمان وارد شدن بیشتر شبیه به ماژولهای خود پایتون رفتار کنند. چندین ماژول در کتابخانه استاندارد پایتون از این رفتار پشتیبانی میکنند که از آن جمله میتوان به _abc, audioop, _bz2, _codecs, _contextvars, _crypt, _functools, _json, _locale, operator, resource, time, _weakref اشاره کرد.
تغییر دوم یک ABI داخلی پایدار برای CPython است. در گذشته اینگونه بوده است که ABI یک نسخه ارتقا یافته از پایتون با نسخههای قبل از خود سازگاری نداشته و برای کامپایل مجدد به ماژولهای افزونه نیاز بوده است. اما حالا هر ماژول افزونه که از ABI استفاده میکند با تمام نسخههای پایتون کار خواهد کرد. در Python 3.9 ماژولهای زیر در کتابخانه استاندارد از ABI استفاده میکنند: audioop, ast, grp, _hashlib, pwd, _posixsubprocess, random, select, struct, termios, zlib
سایر تغییرات اعمال شده در Python 3.9
کتابخانه استاندارد پایتون حالا از IANA Time Zone Database پشتیبانی میکند. این پایگاه داده خوش ساخت به طور گسترده استفاده میشود و به کار گیری آن در کتابخانه datetime پایتون به میزان زیادی در وقت شما صرفه جویی خواهد کرد.
متدهای رشتهای جدید حذف پسوندها و پیشوندها را ساده میکند. متدهای جدید .removeprefix() و .removesuffix() یک نسخه اصلاح شده از رشته منهای پیشوند یا پسوند مورد نظر را به شرط آنکه در رشته وجود داشته باشد برمیگرداند.
ماهنامه شبکه را از کجا تهیه کنیم؟
ماهنامه شبکه را میتوانید از کتابخانههای عمومی سراسر کشور و نیز از دکههای روزنامهفروشی تهیه نمائید.
ثبت اشتراک نسخه کاغذی ماهنامه شبکه
ثبت اشتراک نسخه آنلاین
کتاب الکترونیک +Network راهنمای شبکهها
- برای دانلود تنها کتاب کامل ترجمه فارسی +Network اینجا کلیک کنید.
کتاب الکترونیک دوره مقدماتی آموزش پایتون
- اگر قصد یادگیری برنامهنویسی را دارید ولی هیچ پیشزمینهای ندارید اینجا کلیک کنید.
نظر شما چیست؟