| کانال توسعه‌دهندگان پایتون |
6.63K subscribers
38 photos
2 videos
4 files
43 links
⭕️ کانال توسعه‌دهندگان پایتون دولوپیکس

💠 دولوپیکس | جامعه توسعه‌دهندگان ایرانی

💎 @Developix
🚀 Developix.ir

📌 پشتیبانی و تبلیغات:
@DevelopixSupport
Download Telegram
💠 PEP 758 – Allow except and except* expressions without parentheses

با قبول PEP 758 حالا syntax جدیدی رو برای ساختار try-except در نسخه 3.14 داریم. این موضوع ساختار های مورد قبول فعلی رو تغییر نمیده و فقط ساختاری جدید رو اضافه میکنه.

ابتدا بهتره یک مرور ساده روی ساختار فعلی except داشته باشیم:
except_block:
| "except" expression ["as" identifier] ":" block
| "except" "*" expression ["as" identifier] ":" block



اگر لازم بود که از چند exception استفاده کنیم اونها رو داخل پرانتز قرار میدادیم و با ساختار زیر از اون استفاده میکردیم:
except_block:
| "except" (expressions) ["as" identifier] ":" block
| "except" "*" (expressions) ["as" identifier] ":" block


یا به طور دقیق تر:
except_block:
| "except" "(" expression ("," expression)+ ")" [ "as" identifier ] ":" block
| "except" "*" "(" expression ("," expression)+ ")" [ "as" identifier ] ":" block


به شکل:
try:
risky_operation()
except (ValueError, TypeError, RndExcept):
handle_error()


این PEP چیز بخصوصی رو به همراه نداره، تنها موردی که به این زبان اضافه میکنه اینه که از حالا در صورتی که از کلمه کلیدی as استفاده نشه میتونیم از پرانتز ها صرف‌نظر کنیم. پس حالا ساختار های زیر رو در پایتون ممکنه ببینید:
except_block:
| 'except' expressions ':' block
| 'except' '*' expressions ':' block


به طور خلاصه میتونیم بگیم که اگر تا الان کد زیر با SyntaxError برخورد میکرد، حالا در نسخه 3.14 به هیچ مشکلی برخورد نمیکنه و به درستی اجرا میشه:
try:
risky_operation()
except ValueError, TypeError, RndExcept:
handle_error()


اما باید توجه داشت که اگر لازم باشه از as و یک identifier استفاده بشه وجود پرانتز ها همچنان الزامی هستند.

دلیل اضافه شدن این امکان عمدتا مرتبط به خوانایی کد و ساده کردن قسمت هاست. استفاده از پرانتز باتوجه به نبود هیچ چیز اضافه دیگه‌ای غیرضروری بنظر میرسید و باتوجه به سایر قسمت ها که اضافه کردن پرانتز در این شرایط رو اختیاری کردند، این تغییر کمک میکنه تا قسمت except از ساختار کلی error handling در پایتون هم مقداری مشابه سایر قسمت ها بشه. به طور خلاصه میتونیم بگیم که اگر از python2 استفاده میکردید و به این شکل خطاها رو مدیریت میکردید، حالا باز هم مجاز به انجام این کار هستید.

✍️ *ژنرال*

🏷 #Python, #PEP, #except, #try, #pep785

💎 Channel: @DevelopixPython
Please open Telegram to view this post
VIEW IN TELEGRAM