PYHINTS Telegram 58
بخاطر صحبت‌هایی که توی گروه (کامنت‌های پست قبلی شد) تصمیم گرفتم راجب مطرح‌ترین حالت های exception handling بطور خلاصه توضیحی بدم :
توی پایتون دوتا استایل کد زدن خیلی معروف وجود داره :
1- easier to ask forgiveness than permission (EAFP)
2- look before you leap (LBYL) A.K.A : ask for permission first

شخصا روش اول رو ترجیح میدم (توی سورس کد پایتون هم دید همین هست اگر خونده باشید بخصوص پایتون ۳.۱۱) داستان روش اول اینه که شما سعی می‌کنه کار رو انجام بدی اگر نشد exception ایی که بر میگرده رو handle می‌کنی و توی اون exception سعی می‌کنی حالت دیگه کار رو انجام بدی و ....

حالت دوم میگه قبل از اینکه ارور بخوری شده ۲۰ تا if, else تو در تو داشته باشی اشکال نداره ولی try - except رو کم کن (خیلی پایتونی نیست این روش)

حالت دوم رو بیشتر توی کدهای جاوا و C++ می‌بینید که صحبت از سربار try-except هست نسبت به if - else (البته شخصا این رو قبول ندارم) این موضوع برای پایتون صادق نیست بخصوص توی پایتون 3.11 و با توجه به معرفی
zero-cost exceptions
البته ۱۰۰٪ هم بدون هزینه نیست (مثل C++ دوست داشتید سرچ کنید راجبش)


اما کدوم استایل رو باید رعایت کنید
LBYL :
داشتن if-else های تو در تو و چک کردن شرایط و جلوگیری از بروز exception یا
EAFP :
داشتن try-except تو در تو (درصورت بروز exception) به هندل کردنش فکر میکنیم اگر exception بوجود نیومد نیازی نداریم شرایط رو بررسی کنیم.

اگر میخواید پایتونی کد بزنید قطعا توی ۹۰٪ شرایط EAFP رو دنبالش باشید؛
اما چطوری ۱۰٪ رو تشخیص بدید ؟

خیلی ساده؛ هر روشی که تعداد خط کد کمتری لازم داشت و تمیزتر بود بعضی وقتا
Ask for permission first (LBYL)
کمک می‌کنه کد خواناتر و تمیزتر باشه.

سعی می‌کنم یک نمونه کد از هر ۲ مورد هم پیدا کنم یا بنویسم و بذارم.

@PyHints
👍282👏1



tgoop.com/pyHints/58
Create:
Last Update:

بخاطر صحبت‌هایی که توی گروه (کامنت‌های پست قبلی شد) تصمیم گرفتم راجب مطرح‌ترین حالت های exception handling بطور خلاصه توضیحی بدم :
توی پایتون دوتا استایل کد زدن خیلی معروف وجود داره :
1- easier to ask forgiveness than permission (EAFP)
2- look before you leap (LBYL) A.K.A : ask for permission first

شخصا روش اول رو ترجیح میدم (توی سورس کد پایتون هم دید همین هست اگر خونده باشید بخصوص پایتون ۳.۱۱) داستان روش اول اینه که شما سعی می‌کنه کار رو انجام بدی اگر نشد exception ایی که بر میگرده رو handle می‌کنی و توی اون exception سعی می‌کنی حالت دیگه کار رو انجام بدی و ....

حالت دوم میگه قبل از اینکه ارور بخوری شده ۲۰ تا if, else تو در تو داشته باشی اشکال نداره ولی try - except رو کم کن (خیلی پایتونی نیست این روش)

حالت دوم رو بیشتر توی کدهای جاوا و C++ می‌بینید که صحبت از سربار try-except هست نسبت به if - else (البته شخصا این رو قبول ندارم) این موضوع برای پایتون صادق نیست بخصوص توی پایتون 3.11 و با توجه به معرفی
zero-cost exceptions
البته ۱۰۰٪ هم بدون هزینه نیست (مثل C++ دوست داشتید سرچ کنید راجبش)


اما کدوم استایل رو باید رعایت کنید
LBYL :
داشتن if-else های تو در تو و چک کردن شرایط و جلوگیری از بروز exception یا
EAFP :
داشتن try-except تو در تو (درصورت بروز exception) به هندل کردنش فکر میکنیم اگر exception بوجود نیومد نیازی نداریم شرایط رو بررسی کنیم.

اگر میخواید پایتونی کد بزنید قطعا توی ۹۰٪ شرایط EAFP رو دنبالش باشید؛
اما چطوری ۱۰٪ رو تشخیص بدید ؟

خیلی ساده؛ هر روشی که تعداد خط کد کمتری لازم داشت و تمیزتر بود بعضی وقتا
Ask for permission first (LBYL)
کمک می‌کنه کد خواناتر و تمیزتر باشه.

سعی می‌کنم یک نمونه کد از هر ۲ مورد هم پیدا کنم یا بنویسم و بذارم.

@PyHints

BY Python Hints


Share with your friend now:
tgoop.com/pyHints/58

View MORE
Open in Telegram


Telegram News

Date: |

The Standard Channel More>> Write your hashtags in the language of your target audience. Step-by-step tutorial on desktop: Select: Settings – Manage Channel – Administrators – Add administrator. From your list of subscribers, select the correct user. A new window will appear on the screen. Check the rights you’re willing to give to your administrator.
from us


Telegram Python Hints
FROM American