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