از طریق منوی جستجو مطلب مورد نظر خود در وبلاگ را به سرعت پیدا کنید
نحوه غیرفعال کردن هشدارها در پایتون
سرفصلهای مطلب
معرفی
هنگام کار با هر زبانی، احتمالاً با هشدارهایی روبرو شده اید – و بسیاری از آنها. در پایتون، اخطارهای ما پیامهایی با رنگ زرد هستند که هنگام اجرای کد ظاهر میشوند. این هشدارها راهی است که پایتون به ما میگوید، در حالی که کد ما از نظر فنی درست است و اجرا میشود، چیزی در آن وجود دارد که کاملاً درست نیست یا در نهایت میتواند منجر به مشکلاتی شود. گاهی اوقات این هشدارها مفید هستند و گاهی اوقات مفید نیستند. پس اگر بخواهیم آنها را غیرفعال کنیم چه؟
در این بایت، کمی بیشتر در مورد اینکه هشدارهای پایتون چیست، چرا ممکن است بخواهید آنها را غیرفعال کنید و چگونه می توانید این کار را انجام دهید، نشان خواهیم داد.
هشدارهای پایتون
هشدارهای پایتون پیامهایی هستند که مفسر پایتون زمانی که با کدهای غیرعادی مواجه میشود، ارسال میکند که ممکن است لزوماً منجر به خطا نشود، اما احتمالاً آن چیزی نیست که شما در نظر داشتید. این هشدارها میتواند شامل مواردی مانند هشدارهای منسوخ شدن، که به شما میگوید چه زمانی یک ویژگی پایتون در حال حذف شدن است، یا هشدارهای نحوی، که به شما هشدار میدهند کدهای عجیب و غریب اما از لحاظ نحوی صحیح هستند.
در اینجا نمونه ای از هشداری است که ممکن است مشاهده کنید:
import warnings
def fxn():
warnings.warn("fxn() is deprecated", DeprecationWarning, stacklevel=2)
warnings.simplefilter('always', DeprecationWarning)
fxn()
وقتی این کد را اجرا می کنید، پایتون a را خروجی می دهد DeprecationWarning
:
$ python warnings.py
warnings.py:9: DeprecationWarning: fxn() is deprecated
fxn()
توجه داشته باشید: مجبور شدیم اضافه کنیم warnings.simplefilter('always', DeprecationWarning)
خط به منظور دریافت هشدار برای نشان دادن. در غیر این صورت DeprecationWarning
s به طور پیش فرض نادیده گرفته می شوند.
چرا آنها را غیرفعال کنیم؟
این سوال خوبی است. هشدارها واقعا مفید هستند، اما مواقعی وجود دارد که ممکن است بخواهید آنها را غیرفعال کنید.
برای مثال، اگر با یک پایگاه کد بزرگ کار میکنید و از هشدارها آگاه هستید، اما تصمیم گرفتهاید فعلاً آنها را نادیده بگیرید، بالا رفتن مداوم آنها نه تنها آزاردهنده است، بلکه باعث میشود خروجی مهمتری را از دست بدهید. کد در همین راستا، اگر اسکریپتی را اجرا میکنید که در یک فایل گزارش خروجی میدهد، ممکن است نخواهید اخطارها را در لاگهای شما به هم ریخته باشد.
نحوه غیرفعال کردن هشدارهای پایتون
چند راه برای غیرفعال کردن اخطارها در پایتون وجود دارد که ما به سه مورد از آنها نگاه خواهیم کرد: استفاده از warnings
ماژول، با استفاده از گزینه های خط فرمان، و با استفاده از متغیرهای محیطی.
با استفاده از ماژول هشدارها
پایتون warnings
ماژول راهی برای کنترل نحوه نمایش هشدارها ارائه می دهد. می توانید استفاده کنید filterwarnings
عملکردی برای نادیده گرفتن همه هشدارها به صورت برنامه ای:
import warnings
warnings.filterwarnings("ignore")
این همه هشدارها را سرکوب می کند. اگر میخواهید فقط نوع خاصی از هشدار را سرکوب کنید، میتوانید با مشخص کردن کلاس هشدار این کار را انجام دهید:
warnings.filterwarnings("ignore", category=DeprecationWarning)
در این مورد فقط DeprecationWarning
s سرکوب خواهد شد.
با استفاده از گزینه های خط فرمان
اگر اسکریپت پایتون خود را از خط فرمان اجرا می کنید، می توانید از آن استفاده کنید -W
گزینه به دنبال آن ignore
برای سرکوب همه هشدارها:
$ python -W ignore your_script.py
استفاده از متغیرهای محیطی
شما همچنین می توانید استفاده کنید PYTHONWARNINGS
متغیر محیطی برای کنترل نمایش هشدارها. برای نادیده گرفتن همه هشدارها، می توانید این متغیر را روی آن تنظیم کنید ignore
:
$ export PYTHONWARNINGS="ignore"
$ python your_script.py
این همه اخطارها را برای کل جلسه سرکوب می کند. اگر میخواهید هشدارها را سرکوب کنید همه جلسات، شما می توانید اضافه کنید export PYTHONWARNINGS="ignore"
خط به فایل راه اندازی پوسته شما (مانند .bashrc
یا .bash_profile
برای bash) به طوری که این تنظیم همیشه تنظیم می شود.
خطرات هشدارهای غیرفعال کردن
در حالی که چندین راه برای غیرفعال کردن هشدارها در پایتون وجود دارد، باید خطرات مرتبط با انجام این کار را نیز درک کنید.
به عنوان مثال، الف DeprecationWarning
به شما هشدار می دهد که تابعی که از آن استفاده می کنید در نسخه بعدی پایتون یا کتابخانه حذف می شود. اگر این هشدار را نادیده بگیرید، ممکن است هنگام ارتقا به نسخه جدید، کد شما ناگهان از کار بیفتد.
به عنوان یک قاعده کلی، بهتر است به جای سرکوب اخطارها، فقط مشکلاتی را که باعث ایجاد اخطار می شوند، برطرف کنید. با این حال، شرایطی وجود دارد که حذف هشدارها عملی ترین راه حل است، مانند زمانی که از کتابخانه ای استفاده می کنید که هشدارهایی را ایجاد می کند که نمی توانید کنترل کنید و در واقع مفید نیستند. در این موارد، بهتر است فقط اخطارهای خاصی را که نیاز دارید سرکوب کنید و از استفاده از دستور عمومی “نادیده گرفتن همه” خودداری کنید.
نتیجه
هشدارها به دلایلی وجود دارند، مانند سیگنال دادن به مشکلات احتمالی در کد که ممکن است منجر به اشکالات یا رفتار غیرمنتظره شود، بنابراین بهتر است آنها را سرکوب نکنید. با این حال، مواقعی وجود دارد که ممکن است بخواهید این اخطارها را غیرفعال کنید، چه برای تمیز کردن خروجی کنسول خود یا به این دلیل که از هشدار آگاه هستید و تصمیم گرفته اید که به موقعیت خاص شما مربوط نیست.
در این بایت، با هشدارهای پایتون، نحوه سرکوب آنها و خطرات احتمالی انجام این کار آشنا شده ایم.
منتشر شده در 1402-12-27 03:56:04