ثلاث خطوات لتعلم تصحيح قطعة أثرية، والكفاءة تحسين الكثير!

PDB بيثون يحمل حزمة، وهو مستوى التصحيح مصدر بيثون هو برنامج تفاعلي، وتشمل السمات الرئيسية تحديد نقاط التوقف، خطوة واحدة التصحيح، يتم إدخال وظيفة التصحيح، وجهة نظر القانون الحالي، وتبحث في قطعة مكدس، والمتغيرات تغيير حيوي قيمة وهلم جرا.

أدوات بدء التصحيح

الخطوة الأولى هي استخدام PDB مترجم إلى إدخال أداة التصحيح في الوقت المناسب. ويمكن استخدامه في العديد من الطرق المختلفة

لهذا الغرض، وهذا يتوقف على الظروف الأولية ومحتوى التصحيح.

من سطر الأوامر:

يتم تشغيل PDB معظم بطريقة مباشرة من سطر الأوامر، تنسيق الأمر كما يلي:

python3 -m فوسفات الحمر ملف

هنا نأتي إلى مثال صغير، هناك ملف يسمى 1.py، رمز كما يلي:

فو صفر (الأسطوانات): طباعة (و "العدد الحالي هو: {الأسطوانات}") إذا __name__ == '__main__': فو (3)

ثم الأمر لتحديد الموقف الحالي.

PDB المدى من سطر الأوامر

سوف PDB وعادة ما تشمل المسار الكامل من كل وحدة في الناتج عند طباعة اسم الملف، ثم سيتم عرض رمز السطر التالي ليتم تشغيلها. كلمة داخل بجوار لتشغيل فو وظيفة.

تشغيل في مترجم:

إذا قمت بتشغيل أدوات التصحيح في بيئة تفاعلية، يمكنك استخدام على المدى () أو runeval ().

تشغيل في البرنامج:

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

set_trace () يمكن الاستناد إليها في أي موقف، كما في المثال التالي.

فوسفات استيراد فو صفر (الأسطوانات): طباعة (و "العدد الحالي هو: {الأسطوانات}") لأنني في مجموعة (الأسطوانات): pdb.set_trace () طباعة (و "عدد دورة الحالية: {أنا}") إذا __name__ == '__main__': فو (10)

ضرب رمز أعلاه لدورة في نقطة توقف، يمكنك العثور على برنامجنا توقف عند موقف للدورة، ومن ثم يعرض محتويات السطر التالي ليتم تنفيذها

طباعة (و "عدد دورة الحالية: {أنا}") نحن نعرف كيف دورة الأرقام القليلة الأولى؟

A: يمكنك أن ترى القيمة الحالية قبل إدخال المتغير المباشر ط.

كيفية معرفة تشغيل التعليمات البرمجية الحالية حيث كنا؟

A: يمكنك استخلاص موقف الخط الذي يتم تنفيذه، وبرنامج دعوة كومة من خلال الأمر حيث (مختصر ث).

كيفية عرض القريب بالطبع معلومات رمز الرموز في محيط؟

A: كود نظرة افتراضية حول خط 5، من خلال خط 5 القائمة (مختصر ل). مزيد من قيادة اللائحة الطويلة (مختصر LL) الناتج مايو وظيفة مصدر في الوقت الراهن. إذا كنت بحاجة لمعرفة مصدر الصف بأكمله يمكن الحصول على مصدر حسب مصدر + اسم الفئة.

أوامر المشتركة

الخطوات التالية:

خطوة (اختصار الصورة): وظيفة تنفيذ خطوة واحدة، إذا استمروا في وظيفة إلى وظيفة التصحيح الداخلية، إذا كنت لا تدخل الجسم وظيفة فقط تنفيذها خطوة خطوة، فإننا يجب أن تستخدم ما يلي المقبل.

بجانب (ويشار إلى ن): أوامر من خطوة واحدة، لن تدخل الجسم وظيفة، ولكن ليقول قبل ذلك إذا واجهت لحلقة 10 مرة أفضل إذا كان 10،000 مرات، ثم يجب عليك استخدام الأوامر التالية.

حتى: نوع الأمر التالي، ولكنها سوف تستمر حتى تنفيذ وظيفة لنفس عدد الصفوف أكبر من القيمة الحالية من خط، والتي يمكن استخدامها للقفز عن الملاعب حتى نهاية الدورة. بالطبع، حتى يمكنك تحديد قيمة أكبر من رقم السطر الحالي، ونقل إلى موقف محدد.

على سبيل المثال:

فوسفات استيراد الطبقة Myobj (): فو صفر (النفس، الأسطوانات): طباعة (و "العدد الحالي هو: {الأسطوانات}") pdb.set_trace () لأنني في مجموعة (الأسطوانات): طباعة (و "عدد دورة الحالية: {أنا}") طباعة ( "فوق") إذا __name__ == '__main__': م = Myobj () m.foo (4)

ويمكن الاطلاع على أداء دورة كاملة حتى ذهب مرة أخرى، ثم السطر التالي هو.

- >  طباعة ( "فوق") العودة: عودة يمكن أن يكون اختصار لتجاوز قطعة من التعليمات البرمجية، ولكنها سوف تستمر. حتى على استعداد لأداء بيان وظيفة المقابل، ثم توقف بحيث يمكنك ان ترى قبل ترجع الدالة قيمة الإرجاع.

استخدام أمثلة عملية قليلا، ولكن يمكن أن تكون مظاهرة جيدة في هذا الشأن.

فوسفات استيراد سفينة من نفس الطراز = الطبقة Myobj (): فو صفر (النفس، الأسطوانات): طباعة (و "العدد الحالي هو: {الأسطوانات}") pdb.set_trace () لأنني في مجموعة (الأسطوانات): طباعة (و "عدد دورة الحالية: {أنا}") lst.append (ط) عودة سفينة من نفس الطراز إذا __name__ == '__main__': م = Myobj () m.foo (4)

توقف ذات صلة:

كسر (مختصر ب): بالطبع، حتى مع نمو رمز واستخدام العودة أو حتى بجوار جدا، ثم ينبغي أن ننظر وضع نقطة توقف في الموقع المحدد بالمناسبة، إذا كنت ترغب في تعيين نقطة توقف على خط معين من ملف تستغرق وقتا طويلا ، يمكن كسر lineno، ثم يستمر ما يلي (مختصر ج) يتم نقل الأمر إلى توقف المقبلة.

يمكننا أيضا تحديد تعيين نقطة توقف في دالة مثل: كسر Myobj () فو ..

وبالإضافة إلى ذلك يمكنك أيضا تنفيذ وثائق أخرى تعيين نقاط، يمكنك أيضا تعادل مسار نسبي من ملف على sys.path. إذا لم تتمكن سوى قيادة يمكنه رؤية أين هناك نقطة توقف، رقم السطر وغيرها من المعلومات، بما في ذلك الملفات التي.

تعطيل: يمكنك تحديد نقطة توقف عرضها في الشوط الثاني أعلاه، بعد يمكن العثور على حكم الاعدام قبل ENB شريط نعم أصبحت كاذبة. وعندما تمت مقاطعة المدخلات التي كتبها l انظر النقطة B الكشف عن هويته.

إذا كنت ترغب في إزالة الحاجة لتنفيذ الأمر واضح.

تظهر إضافة وإزالة نقاط النتائج خريطة

واضح: لإزالة نقطة توقف، استخدم اضحا رقم الهوية، اكتب تعطيل.

tbreak: مسح تلقائيا عند انقطاع مؤقت، وتنفيذ الأولى من البرنامج إلى نقطة توقف مؤقتة. لا تذهب حذف يدويا.

توقف الشرطي:

يمكن تطبيقها على كسر بعض القواعد، بحيث عندما يتم استيفاء الشروط إلا إذا كان التنفيذ. مقارنة مع تمكين وتعطيل نقاط التوقف، يمكن نقاط الشرطية استخدامها لتحسين السيطرة المصحح لوقف البرنامج يدويا.

نقاط الشرطية يمكن تعيين بطريقتين. الطريقة الأولى هي لتحديد شروط استراحة استخدام مجموعة نقاط التوقف. طرق استخدام أرقام خط زائد التعبير. انظر على سبيل المثال تطبيق.

فوسفات استيراد سفينة من نفس الطراز = الطبقة Myobj (): pdb.set_trace () فو صفر (النفس، الأسطوانات): طباعة (و "العدد الحالي هو: {الأسطوانات}") إذا __name__ == '__main__': م = Myobj ()

تحليل معنى الأمر في الشكل التالي:

1.break 10، عدد الأسطوانات > 5، 10 خط يشير إلى نقطة فاصل، وبشرط أن الأسطوانات > عندما 5، يمكنك عرض معلومات نقطة محددة من خلال كسر الانتاج الى الوراء، فمن الواضح لنا أن نرى كسر الشروط.

توقف إلا إذا الأسطوانات > 5

2. إذا تقييم التعبير إلى true، ثم يتوقف التنفيذ عند نقطة توقف.

وبالإضافة إلى ذلك، يمكن أيضا تطبيق شروط الاستخدام لأوامر الإيقاف الشرطية القائمة. المعلمة ID هو توقف والتعبيرات.

أو رمز أعلاه دعونا نلقي نظرة على التصاميم.

تجاهل نقاط التوقف

إذا كنت ترغب في تجاهل أول نتائج قليلة في أثناء الدورة، مثل السابق تجاهلها هنا ثلاثة، يمكنك استخدام تجاهلها.

استخدام غير:

تجاهل تجاهل عدد توقف الهوية. إذا كنت لا تريد تشغيل قبل أن تتمكن من استخدام الأمر التالي لتجاهل، إذا كان لديك على المدى الاستمرار، ثم أي آثار. تجاهل معرف نقطة 0

رصد المتغيرات:

عرض: أحيانا نحتاج مراقبة الوقت الحقيقي من التغييرات في متغير، وهذه المرة ديسبالي هو أفضل المساعد، إذا كنت تريد أن تكون من استخدام undisplay.

المتغيرات عرض الشاشة

تغيير سير العمل:

القفز: القفز القيادة لتغيير تدفق من برنامج في وقت التشغيل، دون تعديل التعليمات البرمجية. ويمكن أن التجاوز الى تجنب تشغيل بعض التعليمات البرمجية، يمكنك القفز مرة أخرى لتشغيله مرة أخرى.

فوسفات استيراد صفر و (ن): pdb.set_trace () يؤدي = ي = 0 لأنني في مجموعة (ن): ي = ط * ن + ي ي + ن = result.append (ي) نتيجة عودة إذا __name__ == '__main__': طباعة (و (5))

القفز إلى الأمام:

بعد نقطة قفزة ستمضي قدما في تنفيذ الموقع الحالي، دون أي بيان أثناء التنفيذ.

قفزة الى الوراء:

يمكن برنامج القفز أيضا الانتقال إلى تنفيذ تم تنفيذ ما جاء في أجل تشغيلها مرة أخرى.

القفز بطريقة غير مسموح بها

1. القفز من وإلى بعض التصريحات التحكم في التدفق ولا يمكن تحديد موعد دخول.

2. وظيفة تخطي يمكن استخدامها للدخول، ولكن ليس إلى المعلمة، رمز لا يمكن العمل.

3. السريع لحلقة لا يدخل أو محاولة: كتلة المتوسط باستثناء بيان مثل.

4.finally يجب أن يتم تنفيذ كتلة التعليمات البرمجية تماما، وسوف يقفز لم يترك الكتلة.

الحد الأساسي هو أن يقفز تقتصر على الجزء السفلي من الإطار مكدس المكالمة. بعد فحص لنقل ما يصل المتغيرات المكدس في هذا الوقت لا يمكنك تغيير تدفق التنفيذ.

أوامر أخرى

  • حتى (ش قصيرة): ليكون إطار مكدس لنقل كبار السن
  • إلى أسفل (اختصار د): ويمكن كومة إطار المحمول أحدث. في كل مرة تحول صعودا أو هبوطا في المكدس، وأداة التصحيح طباعة الوضع الحالي، حيث نفس الشكل كتنسيق إنشاء.
  • وسائط (المشار إليها أ): لطباعة قيم جميع المعلمات من وظيفة.
  • p و ص: هما الطباعة وpprint الوظائف مثل الثعبان. معلومات الإخراج، ص مع ميزات المناظر الطبيعية.
  • !: في التعبير السابق زائد! يمكنك تعديل البرنامج قيد التشغيل حاليا القيم الثعبان، مثل المثال أعلاه الأسطوانات يساوي 10، إذا كنت تفعل! الصيغة الرقميه = 3، ثم في وقت لاحق سترى الناتج الأسطوانات الأسطوانات تصبح 3 في هذا الوقت، وهذا يمكن أن تقلل من وقتنا اختبار عدد من الدورات. وبطبيعة الحال، وهذا يمكن أن يتغير إذا كان عدد من الدورات أو راجع منطق البرنامج.
  • المواد المرجعية

https://docs.python.org/3.7/library/pdb.html

نبذة عن الكاتب: تشن Xiangan والزواحف مهندس كبير لسنوات عديدة، لديها ثروة من الخبرة في مجال الزواحف ونقلها من لغة C # للغة بيثون، وحسن في جميع أنواع التكنولوجيا الزواحف ودراية تنمية واسعة النطاق من الزواحف والحب والحب دراسة بيثون. أرحب بكم وتبادل التعلم معا.

الكاتب تقديم المادة، ينتمي إلى المؤلف.

الرسوم: كيفية العثور على أقصر مسار الرسم البياني؟ | عناوين تقنية

البالغة من العمر 50 عاما يانغ لان صورة حديثة من زوجها "رئيس الدهون وآذان كبيرة،" لم ابنته البالغة من العمر 18 عاما لم يرث لها ارتفاع قيمة اللون

نسخة مبرمج من "الكونغ فو"، ومشاهدة الدموع الرأس!

التصويت | الرعاية الصحية الموت المفاجئ يمكن أن تدفع 300000 يوان؟ أول صناعة الأجهزة الطبية التأمين فى الصين المتبادل للبيع، عليك أن تشتريه؟

دو هايتاو تشن شين حلم ست سنوات الرومانسية لمسافات طويلة: هونغ كونغ على غرار خرافة كسر "تاو" نوع من ارتفاع الوعد

ماذا يمكنك أن إعادة بناء، نوتردام؟

الانتظار لمدة ستة أيام! في دونغقوان من خلال قناة صغيرة يمكن تحديد موعد للخدمات المنزلية عليه (تدفق المرفقة)

Dajiang بالسجن الموظفين السابقين شفرة المصدر تسربت، بابا برات آند ويتني الخط نشر | المهوسون العناوين

19 مكتبة المساعدة الذاتية الجماعية على الإنترنت! تشونغشان قراءة شهر من هذا العام، ما هي الأنشطة؟

المتشددين أسود وأقول لكم، في النهاية كم سنة من شخصيات مارفل؟

وقد تناول العشاء، وسوف يكون معقدا المزارعين الرمز إلى أي مدى؟

قليلا الموج الأزرق خليج، إلى حد كبير لكرة القدم حلم! يوم الأرض، ألف تلميذ تشونغشان لعبة عرض | فيديو