کتابخانه Ice cream: دیگر از تابع print برای اشکال زدایی پایتون در سال 2021 استفاده نکنید

Python Basics Chapter Finding and Fixing Code Bugs Watermarked.eeaac9d5247f

معرفی کتابخانه Ice cream: بیشترین تابع پرکاربرد در پایتون چیست؟ در پاسخ به این سوال بایستی اینگونه بیان کنیم که احتمالاً در بیشتر زبانهای برنامه نویسی، باید تابع print را مشاهده و با آن برخورد داشته باشید. معتقدم بیشتر توسعه دهندگان مانند من از آن برای چاپ پیامها در کنسول، بارها در طول توسعه استفاده می کنند. 

البته هیچ گزینه دیگری وجود ندارد که بتواند تابع print را کاملاً جایگزین کند. با این حال، وقتی می خواهیم برای هدف مثل اشکال زدایی چیزی را بررسی کنیم، قطعاً روش های بهتری برای انجام این کار وجود دارد. در این مقاله ، من قصد دارم کتابخانه بسیار جالبی در پایتون به نام “Ice cream” را معرفی کنم. این کتابخانه میتواند شما را با بسیاری از امکاناتی که برای اشکال زدایی سریع و آسان ایجاد کند، یاری نماید.


یک مثال بد، یک مطلب خوب


1 oaivoTnqqtoKb2gFcq ynw




بیایید با یک مثال نسبتاً بد شروع کنیم. فرض کنید ما تابعی را تعریف کرده ایم و می خواهیم ببینیم آیا مطابق انتظار کار می کند یا خیر. 

def square_of(num):
    return num*num

این تابع به راحتی مربع عدد وارد شده را به عنوان آرگومان برمی گرداند. ممکن است بخواهیم چندین بار به شرح زیر تست کنیم.

print(square_of(2))
print(square_of(3))
print(square_of(4))

1 cmnoulzNyRbm6 Gnp9Eivg




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

بنابراین، روش مناسب این است که می توانید برخی از توضیحات مختصر را به محتوای عملکرد print اضافه کنید تا به ما در پیدا کردن خروجی مربوط کمک کند.


iceCream




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


کاربرد اصلی - متغیرها را مجددا بررسی کنید


1 d8137Xr 4yfL2vN0TRO2Nw




بیایید نگاهی به کتابخانه Ice cream بیندازیم. چگونه کتابخانه Ice cream مشکلاتی که در بالا ذکر شد را حل می کند؟

اول از همه ، ما باید آن را از مخزن PyPI به سادگی با استفاده از pip نصب کنیم.

pip install icecream

سپس ، بیایید کتابخانه Ice cream را اینگونه وارد کنیم:

from icecream import ic

اکنون، می توانیم از آن برای همه مواردی که می خواهیم به عنوان خروجی اطلاعات و اشکال زدایی استفاده کنیم، استفاده کنیم:


فراخوانی تابع

ما می توانیم مستقیماً از Ice cream برای چاپ عملکرد استفاده کنیم. دقیقاً مانند کاری که قبلاً با استفاده از تابع print انجام داده ایم.


icecream 2




عالی نیست!؟ ما هرگز چیزی را در تابع ()ic مشخص نمی کنیم، اما به طور خودکار نام تابع و آرگومان را به همراه نتیجه در خروجی نشان می دهد. بنابراین ، دیگر لازم نیست “شرح مختصر” را به صورت دستی اضافه کنیم.


دسترسی به آدرس ها

Ice cream نه تنها در فراخوانی توابع مفید است، بلکه همچنین می تواند هر آنچه را که برای اشکال زدایی مناسب است مانند دسترسی به یک مقدار key-value در dictionary در قالبی مناسب تولید کند.


Ice cream 3





اشکال زدایی در بلوک if-else:

کتابخانه Ice cream نه تنها برای بررسی یک متغیر بلکه برای یک عبارت کنترلی مانند یک شرط if نیز مفید است. به عنوان مثال ، بیایید یک شرط ساده if-else را به شرح زیر بنویسیم:

input = 'Chris'
if input == 'Chris':
    ic()
else:
    ic()

ما عملکرد Ice cream را در بلوک های if و else مورد بررسی قرار می دهیم ، ببینید چه اتفاقی می افتد.


icecream 4




اگرچه بلوم if-else در حال حاضر کاری از پیش نمی برد، اما تابع ()ic و همچنین شماره خط به ما می گوید که کجا و چه موقع فراخوانده شده است.

این عملکرد کارایی متفاوتی برای کاربران مختلف دارد. برای اهدافی نظیر اشکال زدایی، ما همیشه می خواهیم بدانیم که کد مربوطه در کدام خط در حال اجراست. بنابراین، تابع ()ic همیشه این را به ما می گوید.


1 mKri wlWNTLZiVWN9t2UZw

num = 2
square_of_num = square_of(ic(num))

تزریق در کد موجود:


1 Bl4Tnnt5txzsktwPqGF7jA




به نظر من این ویژگی جالب کتابخانه Ice cream باید برجسته شود. یعنی، تابع ()ic نه تنها اطلاعات پر استفاده را تولید می کند بلکه مقدار را نیز از آن عبور می دهد تا بتواند بیشترین فایده را به همراه داشته باشد. به عبارت دیگر، ما می توانیم این تابع را برای هر چیزی در کد خود قرار دهیم، بدون اینکه بر آن تأثیری بگذارد.بیایید از تابع ()sqaure_of که در قسمت قبلی تعریف کردیم استفاده کنیم.


Ice cream 7




در این مثال ، فرض کنید یک متغیر عددی داریم و می خواهیم مربع آن را محاسبه کنیم. من به جای تابع مربع مربوطه، تابع ()ic را فراخوانی میکنم. بنابراین، مقدار متغیر num چاپ می شود و نتیجه ای که به Square_of_num اختصاص داده شده است ، تحت تأثیر قرار نخواهد گرفت.


جمع بندی:

در این مقاله، ما یک کتابخانه عالی برای Python به نام “Ice cream” معرفی کرده ایم. تابع print پایتون را با خروجی با توضیحات مورد نیاز افزایش داد. بنابراین ، اشکال زدایی را بسیار راحت کرد.این کتابخانه هرگز جایگزین تابع print نخواهد شد، زیرا برای هدف رفع اشکال طراحی شده است.

ویدیو: معرفی کتابخانه Ice cream:

admin
admin

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

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

مطالب مرتبط

لینک کوتاه نوشته
0

سبد خرید چسبان