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

سرور مجازی NVMe

نحوه غیرفعال کردن هشدارها در پایتون

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


معرفی

هنگام کار با هر زبانی، احتمالاً با هشدارهایی روبرو شده اید – و بسیاری از آنها. در پایتون، اخطارهای ما پیام‌هایی با رنگ زرد هستند که هنگام اجرای کد ظاهر می‌شوند. این هشدارها راهی است که پایتون به ما می‌گوید، در حالی که کد ما از نظر فنی درست است و اجرا می‌شود، چیزی در آن وجود دارد که کاملاً درست نیست یا در نهایت می‌تواند منجر به مشکلاتی شود. گاهی اوقات این هشدارها مفید هستند و گاهی اوقات مفید نیستند. پس اگر بخواهیم آنها را غیرفعال کنیم چه؟

در این بایت، کمی بیشتر در مورد اینکه هشدارهای پایتون چیست، چرا ممکن است بخواهید آنها را غیرفعال کنید و چگونه می توانید این کار را انجام دهید، نشان خواهیم داد.

هشدارهای پایتون

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

در اینجا نمونه ای از هشداری است که ممکن است مشاهده کنید:

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) خط به منظور دریافت هشدار برای نشان دادن. در غیر این صورت DeprecationWarnings به طور پیش فرض نادیده گرفته می شوند.

پیشنهاد می‌کنیم بخوانید:  Python Requirements.txt – نحوه ایجاد و Pip Install Requirements.txt در پایتون

چرا آنها را غیرفعال کنیم؟

این سوال خوبی است. هشدارها واقعا مفید هستند، اما مواقعی وجود دارد که ممکن است بخواهید آنها را غیرفعال کنید.

برای مثال، اگر با یک پایگاه کد بزرگ کار می‌کنید و از هشدارها آگاه هستید، اما تصمیم گرفته‌اید فعلاً آنها را نادیده بگیرید، بالا رفتن مداوم آنها نه تنها آزاردهنده است، بلکه باعث می‌شود خروجی مهم‌تری را از دست بدهید. کد در همین راستا، اگر اسکریپتی را اجرا می‌کنید که در یک فایل گزارش خروجی می‌دهد، ممکن است نخواهید اخطارها را در لاگ‌های شما به هم ریخته باشد.

نحوه غیرفعال کردن هشدارهای پایتون

چند راه برای غیرفعال کردن اخطارها در پایتون وجود دارد که ما به سه مورد از آنها نگاه خواهیم کرد: استفاده از warnings ماژول، با استفاده از گزینه های خط فرمان، و با استفاده از متغیرهای محیطی.

با استفاده از ماژول هشدارها

پایتون warnings ماژول راهی برای کنترل نحوه نمایش هشدارها ارائه می دهد. می توانید استفاده کنید filterwarnings عملکردی برای نادیده گرفتن همه هشدارها به صورت برنامه ای:

import warnings
warnings.filterwarnings("ignore")

این همه هشدارها را سرکوب می کند. اگر می‌خواهید فقط نوع خاصی از هشدار را سرکوب کنید، می‌توانید با مشخص کردن کلاس هشدار این کار را انجام دهید:

warnings.filterwarnings("ignore", category=DeprecationWarning)

در این مورد فقط DeprecationWarnings سرکوب خواهد شد.

با استفاده از گزینه های خط فرمان

اگر اسکریپت پایتون خود را از خط فرمان اجرا می کنید، می توانید از آن استفاده کنید -W گزینه به دنبال آن ignore برای سرکوب همه هشدارها:

$ python -W ignore your_script.py

استفاده از متغیرهای محیطی

شما همچنین می توانید استفاده کنید PYTHONWARNINGS متغیر محیطی برای کنترل نمایش هشدارها. برای نادیده گرفتن همه هشدارها، می توانید این متغیر را روی آن تنظیم کنید ignore:

$ export PYTHONWARNINGS="ignore"
$ python your_script.py

این همه اخطارها را برای کل جلسه سرکوب می کند. اگر می‌خواهید هشدارها را سرکوب کنید همه جلسات، شما می توانید اضافه کنید export PYTHONWARNINGS="ignore" خط به فایل راه اندازی پوسته شما (مانند .bashrc یا .bash_profile برای bash) به طوری که این تنظیم همیشه تنظیم می شود.

پیشنهاد می‌کنیم بخوانید:  ساختار حلقه For-Else پایتون چگونه کار می کند؟

خطرات هشدارهای غیرفعال کردن

در حالی که چندین راه برای غیرفعال کردن هشدارها در پایتون وجود دارد، باید خطرات مرتبط با انجام این کار را نیز درک کنید.

به عنوان مثال، الف DeprecationWarning به شما هشدار می دهد که تابعی که از آن استفاده می کنید در نسخه بعدی پایتون یا کتابخانه حذف می شود. اگر این هشدار را نادیده بگیرید، ممکن است هنگام ارتقا به نسخه جدید، کد شما ناگهان از کار بیفتد.

به عنوان یک قاعده کلی، بهتر است به جای سرکوب اخطارها، فقط مشکلاتی را که باعث ایجاد اخطار می شوند، برطرف کنید. با این حال، شرایطی وجود دارد که حذف هشدارها عملی ترین راه حل است، مانند زمانی که از کتابخانه ای استفاده می کنید که هشدارهایی را ایجاد می کند که نمی توانید کنترل کنید و در واقع مفید نیستند. در این موارد، بهتر است فقط اخطارهای خاصی را که نیاز دارید سرکوب کنید و از استفاده از دستور عمومی “نادیده گرفتن همه” خودداری کنید.

نتیجه

هشدارها به دلایلی وجود دارند، مانند سیگنال دادن به مشکلات احتمالی در کد که ممکن است منجر به اشکالات یا رفتار غیرمنتظره شود، بنابراین بهتر است آنها را سرکوب نکنید. با این حال، مواقعی وجود دارد که ممکن است بخواهید این اخطارها را غیرفعال کنید، چه برای تمیز کردن خروجی کنسول خود یا به این دلیل که از هشدار آگاه هستید و تصمیم گرفته اید که به موقعیت خاص شما مربوط نیست.

در این بایت، با هشدارهای پایتون، نحوه سرکوب آنها و خطرات احتمالی انجام این کار آشنا شده ایم.





منتشر شده در 1402-12-27 03:56:04

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

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

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