دوستان یه مقاله جالب پیدا کردم در رابطه با یه ماژول جالب و کاربردی که فکر میکنم خیلی میتونه کمک کنه کد هاتون رو دیباگ کنید .
لینک مقاله
موضوع مقاله: تفاوت استفاده از ()print و ()ic برای دیباگ کردن کدهای پایتوندیباگ کردن با ()print روش سنتی و پرطرفداریه، ولی یه سری دردسر داره مثل شلوغی خروجی، زمانبر بودن برچسبگذاری متغیرها و سختی پیدا کردن دقیق محل پیامهای دیباگ.
ماژول IceCream و تابع ()ic یه جایگزین جذاب برای ()print هست که کار رو سادهتر میکنه.
مثلاً، به جای این که با ()print خروجیها رو دستی برچسب بزنی:
print("math_operations.py:7 in divide_numbers()- a:", a, "b:", b)
با ic() فقط متغیرها رو میدی، خودش همه چیز رو اتوماتیک هندل میکنه:
ic(a, b)
اینطوری هم برچسبها آمادهست، هم خروجی تمیزتره.
مثال: استفاده از ()ic با اطلاعات خط و فایلکد زیر با ()ic و قابلیت نمایش اطلاعات کامل نوشته شده:
from icecream import ic
# فعال کردن نمایش فایل و شماره خط
ic.configureOutput(includeContext=True)
def divide_numbers(a, b):
ic(a, b)
result = a / b
ic(result)
return result
divide_numbers(10, 0) # خطای تقسیم بر صفر
خروجی:
ic| math_operations.py:7 in divide_numbers()- a: 10, b: 0
Traceback (most recent call last):
File "math_operations.py", line 15, in
divide_numbers(10, 0)
File "math_operations.py", line 8, in divide_numbers
result = a / b
ZeroDivisionError: division by zero
مزیت ()ic:- خودش متغیرها رو برچسبگذاری میکنه.
- اسم فایل، شماره خط، و نام تابع رو تو خروجی نشون میده، که پیدا کردن مشکلات رو تو کدهای بزرگ راحتتر میکنه.
- تازه کلی کانفیگ های مختلف داره که خیلی میتونن مفید باشن
جمعبندی: اگر تو پروژههای بزرگ هستی یا میخوای دیباگ مرتبتر و حرفهایتری داشته باشی، حتماً ()ic رو امتحان کن. از جمله قابلیتهاش: برچسبگذاری خودکار، شماره خط و اسم فایل، و خروجی تمیز و قابلپیگیری. 😎