وبلاگ رسانگار
با ما حرفه ای باشید

سرور مجازی NVMe

پایتون: چندین استثنا را در یک خط بگیرید

0 2
زمان لازم برای مطالعه: 2 دقیقه


معرفی

در این مقاله قصد داریم نگاهی به آن بیاندازیم امتحان کنید/به جز بند، و به طور خاص چگونه می توانید چندین استثنا را در یک خط دریافت کنید، و همچنین روش استفاده از آن suppress() روش.

هر دوی این تکنیک ها به شما در نوشتن بیشتر کمک می کند در دسترس و همه کاره کدی که به آن پایبند است خشک (خودت را تکرار نکن) اصول.

بیایید با بررسی مشکل شروع کنیم:

try:
    do_the_thing()
except TypeError as e:
    do_the_other_thing()
except KeyError as e:
    do_the_other_thing()
except IndexError as e:
    do_the_other_thing()

وحشیانه

همانطور که می بینیم، این بسیار است خیس کد، همان فراخوانی را چندین بار تکرار می کنیم. تمرین‌هایی مانند این می‌تواند خواندن و بازآفرینی کد ما را به یک کابوس زنده تبدیل کند.

به جای نوشتن استثناها یکی پس از دیگری، آیا بهتر نیست همه این کنترل کننده های استثنا را در یک خط گروه بندی کنیم؟

استثناهای متعدد

اگر فقط برای یک پاسخ سریع اینجا هستید، ساده است: از تاپل استفاده کنید.

تمام خطاهای موجود در تاپل خط استثنا با هم ارزیابی خواهند شد:

try:
    do_the_thing()
except (TypeError, KeyError, IndexError) as e:
    do_the_other_thing()

آسان است، درست است؟

اجتناب از اعمال بد

“خطاها هرگز نباید بی سر و صدا بگذرند.” – ذن پایتون.

امتحان کنید/به جز بند ها احتمالاً بیشترین استفاده نادرست از الگوی پایتون هستند.

استفاده نادرست از آن‌ها در نهایت به کلیشه مستی‌ها و تیر چراغ‌ها تبدیل می‌شوند و تنها زمانی استفاده می‌شوند که مفسر پایتون شروع به سرود خواندن «12 خطای کریسمس» کند.

پیشنهاد می‌کنیم بخوانید:  معرفی پراکسی های جاوا اسکریپت در ES6 در این مقاله قصد داریم در مورد پراکسی های جاوا اسکریپت که با نسخه جاوا اسکریپت ECMAScript 6 (ES6) معرفی شده اند صحبت کنیم. ما از برخی از نحو ES6 موجود، از جمله عملگر spread در این مقاله استفاده خواهیم کرد. بنابراین اگر دانش اولیه ای در مورد ES6 داشته باشید مفید خواهد بود. چی...

خیلی وسوسه انگیز است که فقط یک را قرار دهید try و یک استثناء آشکار روی مشکلی برای “از بین بردن آن”. با انجام این کار، ما به طور موثر استثناها را زیر فرش جارو می کنیم، که مایه شرمساری است، به خصوص که آنها می توانند به طرز شگفت انگیزی در بهبودی از خطاهای بالقوه کشنده یا روشن کردن نور مفید باشند. روی اشکالات پنهان

به همین دلیل است که هنگام استفاده از بندهای غیر، همیشه باید مطمئن شوید که خطاهایی را که می‌دانید ممکن است با آن‌ها مواجه شوید، مشخص کنید و آن‌هایی را که نمی‌بینید حذف کنید.

اجازه دادن به برنامه شما اشکالی ندارد، حتی ترجیح داده می شود، فقط وانمود کنید که مشکل وجود ندارد.

“خطاها هرگز نباید بی صدا بگذرند… مگر اینکه به صراحت ساکت شوند.”

با این حال، یک بار در ماه آبی که فرصت نادیده گرفتن رسیدگی به استثنا را پیدا کردید، می توانید استفاده کنید suppress():

from contextlib import suppress

with suppress(TypeError, KeyError, IndexError):
    do_the_thing()

این suppress() متد تعدادی استثنا را به عنوان آرگومان خود می گیرد و a را انجام می دهد امتحان کردن/به جز/گذر کردن با اون خطاها همانطور که می بینید به شما امکان می دهد چندین استثنا را در یک خط بنویسید.

این به شما اجازه می دهد از نوشتن a اجتناب کنید امتحان کردن/به جز/گذر کردن به صورت دستی:

try:
    do_the_thing()
except (TypeError, KeyError, IndexError) as e:
    pass

بهتر از آن، در هر نسخه ای نیز استاندارد است پایتون 3.4 و بالاتر!

نتیجه

در این مقاله روش مدیریت چندین استثنا در یک خط را توضیح داده ایم. ما همچنین به طور خلاصه برخی از روش‌های بد نادیده گرفتن استثناها را مرور کرده‌ایم و از آن استفاده کرده‌ایم suppress() تابعی برای سرکوب استثناها به طور صریح.

پیشنهاد می‌کنیم بخوانید:  شروع به کار با Vue CLI 3.xVue.js پس از پیشی گرفتن از React.js در ستارگان GitHub، با وجود اینکه هیچ شرکت بزرگی از آن پشتیبانی نمی کند، به ارتفاعات غیرمنتظره ای صعود می کند، و انتشار ابزار جدید Command-line Interface (CLI) ممکن است خیلی خوب آنها را حتی بالاتر از آن برسانید! داربست کردن پروژه Vue از ابتدا می تواند ...

(برچسب‌ها به ترجمه)# python



منتشر شده در 1403-01-13 00:54:04

امتیاز شما به این مطلب
دیدگاه شما در خصوص مطلب چیست ؟

آدرس ایمیل شما منتشر نخواهد شد.

لطفا دیدگاه خود را با احترام به دیدگاه های دیگران و با توجه به محتوای مطلب درج کنید