توقف Python()

تم تقديم دالة `breakpoint()` كدالة مدمجة جديدة في Python 3.7. دائمًا ما كان تصحيح أكواد Python عملية مؤلمة بسبب الارتباط الوثيق بين الكود الفعلي وكود وحدة التصحيح. على سبيل المثال، إذا كنت تستخدم مصحح pdb، فسيتعين عليك استدعاء pdb.set_trace() في كود برنامجك. إذا أردت استخدام أي مصحح آخر، لنقل web-pdb عندها سيتوجب عليك إزالة جميع الأكواد المتعلقة بـPDB وإضافة طريقة web_pdb.set_trace(). هذا يسبب عبء كبير في استخدام مصحح أخطاء python ويجعل كود python صعب التصحيح والصيانة. لذلك، قدم Python 3.7 طريقة breakpoint() التي تتيح لنا كتابة كود تصحيح فك الارتباط.

نقطة توقف Python

تقوم دالة `breakpoint()` بدعوة دالة sys.breakpointhook(). بشكل افتراضي، تقوم دالة sys.breakpointhook() بدعوة دالة pdb.set_trace(). لذا على الأقل، توفر استخدام `breakpoint()` راحة في استخدام مصحح الأخطاء لأننا لا نحتاج إلى استيراد وحدة pdb صراحةً. لنلق نظرة على مثال بسيط لاستخدام دالة `breakpoint()`. لدينا سكربت Python python_breakpoint_examples.py بالكود التالي.

x = 10
y = 'Hi'
z = 'Hello'
print(y)

breakpoint()

print(z)

عند تنفيذ هذا السكربت، يفتح وحي الخطأ PDB.

$python3.7 python_breakpoint_examples.py
Hi
> /Users/pankaj/Documents/PycharmProjects/BasicPython/basic_examples/python_breakpoint_examples.py(8)()
-> print(z)
(Pdb) c
Hello
$

نقطة التوقف في Python() – توقف التصحيح

تستخدم الدالة sys.breakpointhook() في Python العامل المحيطي PYTHONBREAKPOINT لتكوين مصحح الأخطاء. إذا لم يتم تعيينه، يتم استخدام مصحح الأخطاء PDB الافتراضي. إذا تم تعيينه إلى “0”، فإن الدالة تعيد فوراً ولا يتم أداء تصحيح الكود. إنه مفيد جدًا عندما نريد تشغيل كودنا بدون تصحيح.

$PYTHONBREAKPOINT=0 python3.7 python_breakpoint_examples.py
Hi
Hello
$

نقطة التوقف في Python() – تغيير وحدة التصحيح

يمكننا استخدام المتغير المحيطي PYTHONBREAKPOINT لتوفير طريقة مصحح الأخطاء التي ستتم استدعاؤها بواسطة دالة التوقف breakpoint(). هذا مفيد جدًا لأنه يمكننا تغيير وحدة التصحيح بسهولة دون إجراء أي تغيير في الكود. لنفترض أننا نريد استخدام مصحح الأخطاء web-pdb. يمكننا ربطه ببرنامجنا بسهولة باستخدام PYTHONBREAKPOINT=web_pdb.set_trace. قبل كل شيء، تأكد من تثبيت web-pdb. يمكنك تثبيته باستخدام الأمر pip3.7 install web-pdb.

وفقًا لـ وثائق web-pdb، فهو متوافق مع دالة التوقف الجديدة التي تمت إضافتها في Python 3.7.

$PYTHONBREAKPOINT=web_pdb.set_trace python3.7 python_breakpoint_examples.py
Hi
2018-08-10 12:49:54,339: root - web_console:110 - CRITICAL - Web-PDB: starting web-server on pankaj:5555...

افتح عنوان URL لخادم الويب المقدم في سجل الاستعراض، وسترى نافذة المصحح كما في الصورة أدناه. يمكننا إصدار أوامر PDB باستخدام واجهة المستخدم هذه، يمكنك إرسال الأمر “c” للمتابعة واكتمال برنامجنا.

الملخص

يعتبر وظيفة توقف Python breakpoint() إضافة مفيدة لميزة تصحيح أخطاء Python. من المستحسن استخدام هذا لتصحيح الأخطاء بحيث يمكنك ربط أدوات تصحيح خطوط ثالثة بسهولة على الطاير. كما أنه يوفر خيارًا سهلاً لتعطيل المصحح وتشغيل البرنامج بشكل طبيعي.

يمكنك التحقق من المزيد من أمثلة Python عبر مستودع GitHub الخاص بنا.

المرجع: التوثيق الرسمي

Source:
https://www.digitalocean.com/community/tutorials/python-breakpoint