كما هو الحال مع جميع المهام المتعلقة بالبرمجة فإن عملية إكتشاف الإخطاء وتصحيحها عملية لا تقل أهميية عن العمليات الإخرى ، إذا كنت تستخدم محرر IDE فأنت تمتلك بعض مميزات إكتشاف الإخطاء المتوفرة على ذلك المحرر ، ولكن معظم المبرمجون يقومون بإستخدام محرر VIM او محررات النصوص الأخرى لكتابة أكوادهم ثم تنفيذها عبر الطرفية ، إذن كيف يمكن إكتشاف الأخطاء في هذه الحالة ؟ .
كلما كنت تعمل على مشروع ما فإنه من الجميل أن تمتلك بعض الأدوات التي تستخدم من أجل توضيح مالذي يحدث خلال تشغيل السكريبت ، بايثون تمتلك ميزة مدمجة تسمى pdb وهي إختصار ل “Python DeBugger” وهي أداة رائعة لتحيلل الأكواد وسيكون محور حديثنا في هذه التدوينة عن هذه الأداة وأهم و أشهر مميزاتها .
كيف تقوم بإستعمالها ؟
دعونا نمعن النظر في الكود التالي :
first_line = "This is the first line" print first_line text = "sentence" new_line = first_line[:-4] + text print new_line words = new_line.split() print words[1:-1]
الأن دعونا نقول أننا نريد أن نوقف تنفيذ الكود بعد السطر الخامس والقيام بعملية إكتشاف الأخطاء وتصحيحها وهنا نحتاج إلى إستيراد حزمة pdb و إضافة السطر pdb.set_trace() ليكون الكود على الشكل التالي :
import pdb first_line = "This is the first line" print first_line text = "sentence" new_line = first_line[:-4] + text print new_line pdb.set_trace() words = new_line.split() print words[1:-1]
قم بتشغيل الكود و سيكون الناتج :
This is the first line This is the first sentence > c:\python27\deb.py(8)<module>() -> words = new_line.split() (Pdb)
إذا حصلت على هذه النتيجة فهنيئا لك فقد قمت بتشغيل حزمة pdb لتقوم بتنقيح الكود الخاص بك .
طباعة قيم المتغيرات
واحد من أهم الأسباب التي تجعلنا نريد تنقيح الكود هو تفقد قيم مختلف المتغيرات ومن أجل طباعة قيم المتغيرات يمكننا إستعمال الأمر Print
(Pdb) print text sentence (Pdb) print first_line This is the first line
إستمرارية تنفيذ الكود
خلال عملية تنقيح الكود يمكنك تنفيذ السطر الحالي من الكود بكتابة n (إختصار لكلمة Next) وإذا كنت تريد تنفيذ جميع السطور البرمجية يمكنك كتابة الحرف c (إختصار لكلمة continue) والذي سيقوم بتنفيذ جميع السطور و إغلاق وضع التنقيح كما يمكنك أيضا كتابة الحرف q (إختصار لكلمة Quit) من أجل إنهاء وضع التنقيح ولكن هذه الطريقة ستعرض أيضا خطأ قبل أن تغلق وضع التنقيح .
إذا كنت تقوم بتنقيح ملف بايثون كبير الحجم عليك إذا أن تقوم بوضع مجموعة من عبارات التنقيح جيث سيكون من الرائع أن تعرف أين تتواجد على مستوى الملف.
وفي الأخير يمكن إستعمال عملية التنقيح في الكثير من الأمور و كما لاحظت يتم إستخدامها كأنك تستعمل شيل بايثون ويمكنك إضافة وتعديل وطباعة المتغيرات .