tgoop.com/pyHints/803
Create:
Last Update:
Last Update:
داشتم تغییرات مربوط به Pi Python یا همون Python 3.14 رو میخوندم (پروژههای خودم رو میخوام منتقل کنم روی این نسخه) از این لینک:
What's new in Python 3.14
یک مورد جالب دیدم Pep 765 که :
Disallow return/break/continue that exit a finally block
داستان چیه؟ قطعا شما هم توی کدهای جنگو یا
fastapi دیدید وقتایی که یک نفر try/except رو استفاده کرده و ارورها رو لاگ میندازه و بعدش finally داره که یک return خاص انجام بده مثلا مقدار پیشفرض رو بفرسته.تا اینجا هیچ مشکلی وجود نداره و برای همین هم خیلیها نمیدونند که اینکار باعث مشکل میشه.
حالا فرض کنید توی اون
exception شما بجای نوشتن لاگ raise انجام میدید تا توی بخش دیگری از پروژه اون Exception رو بتونید بهتر هندل کنید؛ اما وقتی Finally رو دارید که توش Return هم انجام میشه؛ چیزی که کد شما میبینه بعنوان response مربوط به اون try/except بلاک هیچوقت نمیتونه raise باشه (همیشه finally آخر از همه اجرا میشه)پس هیچوقت کد شما
raise ایی که نوشتید رو نشون نخواهد داد.توی این نسخه چیکار کردن ؟
Syntax warning اضافه کردند که اگر اینطوری کد زدید بهتون نشون بده که این مشکل وجود داره؛ ولی همچنان
backward compatible بمونه.خیلی هم عالی.
BY Python Hints

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