مجموعه ای از ویژگی های جدید در پایتون 3.11 در دسترس است. وقتی نسخه آلفا را قبل از انتشار در 22 اکتبر امتحان می کنید، در اینجا چیزی است که باید انتظار داشته باشید.
پایتون همچنان کاربران خود را با تطبیق پذیری و عملکرد ذاتی خود شگفت زده می کند. در پایتون 3.11، زبان برنامه نویسی به بهبود عملکرد، مدیریت استثنا و استفاده ادامه می دهد.
اگر مشتاق هستید که نگاهی اجمالی به نسخه آلفا آن داشته باشید (نسخه فعلی 3.11.0a7 است)، می توانید برخی از ویژگی های جدید را قبل از انتشار اصلی در اکتبر 2022 دانلود کرده و آزمایش کنید.
1. سرعت پردازش سریعتر
زبان های برنامه نویسی عملکرد خود را بر اساس قابلیت های اجرایی خود ترسیم می کنند. به طور خلاصه، هرچه بلوکهای کد پیچیدهتر باشند، زمان بیشتری برای بازگشت خروجی یک زبان طول میکشد.
اگرچه نسخههای قبلی پایتون با چنین تاخیرهای زمانی آسیب زیادی نمیبینند، پایتون 3.11 قول میدهد تا 60 درصد سریعتر از نسخههای قبلی خود باشد.
2. پیام های خطای پیشرفته
پایتون 3.10 فاقد قابلیتهایی برای تعیین محل دقیق خطا بود. برای مثال، اگر میخواهید نتیجه به هم پیوسته یک رشته و یک عدد صحیح را چاپ کنید، این چیزی است که در پایتون 3.10 مشاهده خواهید کرد.
در اینجا یک قطعه کد اجرا شده در هر دو نسخه پایتون آمده است:
print("Hello World" + 1)
پایتون 3.10 خطای زیر را برمی گرداند:
File "<string>", line 3, in <module>
TypeError: can only concatenate str (not "int") to str
Python 3.11 مکان دقیقی را نشان می دهد که خطا رخ می دهد، بنابراین به شما امکان می دهد تا به طور موثر اشکال زدایی کنید.
print("Hello" + 1)
~~~~~~~~^~~
TypeError: can only concatenate str (not "int") to str
از آنجایی که پایتون فقط میتواند یک رشته را با رشته دیگری به هم بپیوندد، قبل از اینکه آن را با مقدار رشته اول پیوند دهید، باید عدد صحیح را با تابع str به رشته تبدیل کنید.
3. معرفی کتابخانه tomllib
زبان حداقلی آشکار تام، که معمولاً به عنوان TOML شناخته می شود، به عنوان یک فرمت فایل پیکربندی حداقلی در نظر گرفته می شود که قول می دهد خواندن آسان باشد.
TOML با استفاده از زبان های مختلف به ساختارهای داده تجزیه می شود. این زبان از دیگر فرمتهای فایل، از جمله YAML و JSON شباهتهایی دارد.
YAML بر خوانایی خطوط کد (مانند نظرات) توسط انسان تأکید می کند، در حالی که JSON تمایل دارد کدهای شما را بدون خطا و ساده کند.
TOML، به عنوان یک زبان، بهترین های هر دو زبان را ارائه می دهد، زیرا امکان سادگی و نظرات را در بلوک های کد شما فراهم می کند.
در اینجا نحوه وارد کردن کتابخانه TOML در پایتون آمده است:
Import tomllib
With open(“specify toml file path here”) as t:
tom_file = tomllib.load(t)
print(tomllib.loads(t.read()))
اگر سعی کنید کتابخانه tomllib را در Python 3.10 وارد کنید، با یک پیغام خطایی مواجه می شوید که می گوید ماژول به نام tomllib وجود ندارد.
4. استفاده از کلمه کلیدی Except* برای فعال کردن Exception Handling
خطاها و استثناها با هم همراه هستند، به خصوص هنگام کار بر روی هر زبان برنامه نویسی. پایتون نیز از این قاعده مستثنی نیست. اجرای کد ممکن است به دلیل یک نحو اشتباه، کاراکترهای از دست رفته یا خطاهای ایجاد شده توسط کاربر دچار اختلال شود.
با این وجود، ایده این است که کد خود را اشکال زدایی کنید و یک خروجی یکپارچه با اجرای بدون نقص ایجاد کنید. اگر یک خطا در کد پایتون شما وجود داشته باشد، مطمئن باشید که پایتون آن را همانطور که آمده گزارش خواهد کرد.
اما اگر چندین خطا در کد شما وجود داشته باشد چه؟ با این حال، پایتون همچنان تنها اولین خطای مواجه شده را گزارش میکند و اشکال زدایی مجموعه خطاهای باقیمانده را دشوار میکند. در این مقطع، گروههای استثنایی پایتون 3.11 به میدان میآیند. میتوانید استثناهای غیرمرتبط را با هم جمع کنید و آنها را در دستور استثنا* جمع کنید.
در پایتون با خطاهای مختلفی مانند TypeError، IndentationError، SyntaxError، NameError، ImportError و بسیاری دیگر مواجه می شوید. بسته به هدف کد، یک یا چند مورد از این خطاهای فهرست شده را متحمل خواهید شد. برخی از آنها، مانند IndentationError، به راحتی در کد پایتون برطرف می شوند. اما حل خطا به خطا باگ ها ناکارآمد است.
بنابراین، برای رسیدگی به تمام این خطاها در یک حرکت، میتوانید از تابع try…except* مانند:
#exception groups
try:
raise ExceptionGroup ("Validation Error"), [
ValueError("You've entered an invalid value"),
TypeError("You've entered an invalid type"),
IndentationError("You've encountered an indentation error")])
except* (ValueError, TypeError) as err:
print(repr(err))
سعی و استثنا یک روش ضربه و آزمایشی است که در نسخههای قبلی پایتون استفاده میشود. تابع استثنا* که با 3.11 موجود است، به اندازه کافی قادر است تا تمام استثناهای مرتبط و غیرمرتبط را در یک گروه اولیه به طور همزمان مدیریت کند.
همانطور که پایتون از طریق هر بخش خطا می خواند، یک تریگر مرتبط با اجرای هر زیرگروه ایجاد می شود و رسیدگی به استثناها را آسان تر می کند.
پایتون 3.11 جدیدترین نوع پایتون در بلوک است
پایتون 3.11 ماهیت برنامه نویسی را برای کاربران مبتدی و پیشرفته به طور یکسان تغییر خواهد داد. بهترین راه برای درک و یادگیری برخی از این ویژگی های جدید استفاده از آن در پروژه های بلادرنگ است، به خصوص اگر هنوز در دنیای برنامه نویسی تازه کار هستید.