۳ ابزار برای پیگیری و تصویرسازی اجرای کد پایتون شما

منتشر‌شده در towardsdatascience به تاریخ ۲۹ آوریل ۲۰۲۱لینک منبع: 3 Tools to Track and Visualize the Execution of your Python Codeآیا تا به حال یک خروجی خطا مانند زیر دیده‌اید:2 divided by 1 is equal to 2.0.Traceback (most recent call last): File "loguru_example.py", line 17, in <module> divide_numbers(num_list) File "loguru_example.py", line 11, in divide_numbers res = division(num1, num2) File "loguru_example.py", line 5, in division return num1/num2ZeroDivisionError: division by zeroو آیا همانطور که در اینجا نشان‌ داده شده ‌است، درک خروجی می‌تواند کمی راحت‌تر باشد؟شکل ۱. کد پایتون همچنین ممکن است بخواهید مجسم کنید که کدام خطوط کد در حال اجرا هستند و چند بار در زمان واقعی اجرا می‌شوند:شکل ۲. کد در حال اجرای پایتون اگر اینطور است، این مقاله ابزارهایی برای انجام دقیق موارد بالا به شما خواهد داد. این سه ابزار عبارتند از:ابزار Loguru - استثناهای بهتر را چاپ کنید.ابزار snoop - خطوط کدی را که در یک تابع اجرا می‌شوند چاپ کنید.ابزار heartrate - اجرای یک برنامه پایتون را در زمان واقعی تجسم کنید.و تنها چیزی که برای استفاده از این ابزارها لازم است یک خط کد است!ایزار Loguru - چاپ استثناهای بهترابزار Loguru یک کتابخانه است که هدف آن لذت بردن از ورود به سیستم در پایتون است. لوگورو کارکردهای جالب بسیاری دارد، اما یکی از کارکردهایی که بیش‌ترین فایده را دارد، توانایی گرفتن خطاهای غیرمنتظره و نمایش این است که کدام مقدار از یک متغیر باعث مواجه شدن کد شما با شکست می‌شود.برای نصب لوگورو، این جمله را تایپ کنیدpip install loguruبرای درک اینکه Loguru چگونه می‌تواند مفید باشد، تصور کنید که شما دارای 2 تابع تقسیم و تقسیم_اعداد هستید و تابع divide_numbers (تقسیم_اعداد) اجرا می‌شود. توجه داشته باشید که ترکیبات ([2،1،0]، 2) تبدیل به [(2، 1)، (2، 0)، (1، 0)] می‌شود. پس از اجرای کد بالا، با این خطا مواجه می‌شویم:2 divided by 1 is equal to 2.0.Traceback (most recent call last): File "loguru_example.py", line 17, in <module> divide_numbers(num_list) File "loguru_example.py", line 11, in divide_numbers res = division(num1, num2) File "loguru_example.py", line 5, in division return num1/num2ZeroDivisionError: division by zeroبا توجه به خروجی، ما می‌دانیم که خط بازگشت num1 / num2 جایی است که خطا رخ می‌دهد، اما نمی‌دانیم کدام مقادیر num1 و num2 باعث خطا می‌شود. خوشبختانه با افزودن دکوراتورLoguru’s logger.catch این امر به راحتی قابل پیگیری استخروجی:شکل ۳. کد پایتون منبع مطالعه‌ مقاله‌ ۹سرور گوناگون دیسکورد برای ریاضیات، پایتون و علوم داده که امروزه به آن‌ها نیاز دارید! توصیه می‌شود.با اضافه کردن logger.catch، درک استثناها بسیار آسان‌تر است! معلوم شد که خطا هنگام تقسیم 2 توسط 0 رخ می‌دهد.ابزارsnoop- خطوط کد اجرا شده را به صورت تابعی چاپ کنیداگر هیچ خطایی در کد وجود نداشته باشد، اما ما بخواهیم بفهمیم در کد چه اتفاقی می‌افتد، چه می‌شود؟ آن وقت است که اسنوپ به کارتان می‌آید. اسنوپ یک بسته پایتون است که خطوط کد اجرا شده همراه با مقادیر هر متغیر را با اضافه کردن تنها یک دکوراتور چاپ می‌کند.برای نصب اسنوپ، این جمله را تایپ کنید:pip install snoopبیایید تصور کنیم تابعی به نام فاکتوریل داریم که فاکتوریل یک عدد صحیح را پیدا می‌کند.خروجی:The factorial of 5 is 120برای درک اینکه چرا خروجی فاکتوریل (5)، 20 است، می‌توانیم دکوراتور اسنوپ را به عملکرد فاکتوریل اضافه کنیم.خروجی:شکل ۴. افزودن دکوراتور اسنوپ به عملکرد فاکتوریل ممکن است به مطالعه مقاله تابع نقشه در پایتون علاقمند باشید.در خروجی بالا، می‌توانیم مقادیر متغیرها و خطوط کد را مشاهده کنیم. اکنون ما می‌توانیم درک کنیم که چگونه بازگشت بسیار بهتر عمل می‌کند!ابزار heartrate - اجرای یک برنامه پایتون را در زمان واقعی تجسم کنیداگر می‌خواهید مجسم کنید که کدام خطوط و چند مرتبه اجرا می‌شوند، سعی کنید تمرین کنید. ابزار heartrate نیز توسط خالق Snoop ایجاد شده است. برای نصب heartrate، این جمله را تایپ کنید:pip install heartrateحال بیایید heartrate.trace (مرورگر = درست) را به کد قبلی خود اضافه کنید. با این کار یک پنجره مرورگر باز می شود که تجسم فایلی را که trace () نامیده شده است نمایش می‌دهد. باید زمانی که کد بالا را اجرا می‌کنید یک مرورگر جدید ظاهر شود. در غیر این صورت، به 9999 http: / / lochost: بروید. شما باید خروجی را مانند زیر ببینید:شکل ۵. خروجی کد چه خوب! میله‌ها خطوط ضربه خورده را نشان می‌دهند. میله‌های بلندتر به معنی برخورد بیشتر و رنگ‌های روشن‌تر به معنی تازگی بیشتر هستند. از خروجی فوق می‌توان دریافت که برنامه اجرا می‌شود:if x==1 ۵ باراگرx==1 ، پنج مرتبهبازگشت ۱ یک مرتبهبازگشت (x * فاکتوریل (1x-) ( ۴بارخروجی منطقی است زیرا مقدار اولیه x برابر ۵ است و تابع تا زمانی که x برابر با ۱ شود، به صورت تکراری نامیده می‌شود. حال بیایید ببینیم که تجسم اجرای یک برنامه پایتون در زمان واقعی با استفاده از heartrate چگونه است. بیایید (۰.۵) sleep را اضافه کنیم تا برنامه کمی آهسته‌تر اجرا شود و num را به ۲۰ افزایش دهد.شکل ۶. خروجی در Heartrate چه عالی! ما می‌توانیم ببینیم که کدام خطوط کد در حال اجرا هستند و هر کدام از آن‌ها چند بار در زمان واقعی اجرا شده‌اند.نتیجه‌گیریتبریک! شما در حال حاضر ۳ ابزار برای پیگیری و تجسم اجرای کد پایتون خود یاد گرفته‌اید. امیدوارم هنگام استفاده از این سه ابزار، اشکال‌زدایی برای شما دردسر کمتری باشد. از آنجا که این ابزارها تنها به یک خط کد نیاز دارند، چرا آن‌ها را امتحان نکنید که ببینید چقدر مفید هستند؟این متن با استفاده از ربات ترجمه مقاله علم داده ترجمه شده و به صورت محدود مورد بازبینی انسانی قرار گرفته است.در نتیجه می‌تواند دارای برخی اشکالات ترجمه باشد.مقالات لینک‌شده در این متن می‌توانند به صورت رایگان با استفاده از مقاله‌خوان ترجمیار به فارسی مطالعه شوند.