Αν προγραμματίζεις με Python, πιθανόν να έχεις ήδη συναντήσει σφάλματα. Μερικές φορές είναι εύκολο να τα αναγνωρίσεις, αλλά σε πιο σύνθετες εφαρμογές η αποσφαλμάτωση μπορεί να είναι μια πρόκληση. Εδώ έρχεται ο αποσφαλμαντής Python, που είναι επίσης γνωστός ως PDB. Με αυτόν μπορείς να ελέγξεις την κατάσταση του προγράμματός σου ανά πάσα στιγμή, να επιθεωρήσεις τις τιμές των μεταβλητών και να ανακαλύψεις τι πήγε στραβά. Σε αυτόν τον οδηγό θα μάθεις πώς να χρησιμοποιείς τον αποσφαλμαντή PDB αποτελεσματικά ώστε να βελτιστοποιήσεις τα έργα Python σου.

Σημαντικότερα ευρήματα

  • Ο αποσφαλμαντής PDB σου επιτρέπει να διατρέχεις τον κώδικα βήμα προς βήμα.
  • Με τη λειτουργία pdb.set_trace(), μπορείς να σταματήσεις τη διαδικασία αποσφαλμάτωσης σε οποιοδήποτε σημείο του κώδικα.
  • Μπορείς να επιθεωρήσεις τις μεταβλητές, να εκτελέσεις τον κώδικα διαδραστικά και να εντοπίσεις εύκολα τα σφάλματα.

Βήμα προς βήμα οδηγός

Εισαγωγή του PDB Module

Για να χρησιμοποιήσεις τον αποσφαλμαντή, πρέπει να εισάγεις το module PDB. Αυτό γίνεται με την εντολή import pdb. Η τοποθέτηση ενός σημείου διακοπής στην αρχή του κώδικα σου διευκολύνει την επαλήθευση της εκτέλεσης σε οποιοδήποτε σημείο.

Μάστερ του Python-Debugger με PDB

Ορισμός μεταβλητών

Τώρα θα ορίσεις μερικές μεταβλητές για την εφαρμογή σου. Για παράδειγμα, δημιούργησε μια λίστα a με τιμές και δύο ακόμη μεταβλητές b και c, οι οποίες αντιπροσωπεύουν απλούς ακέραιους αριθμούς. Με αυτό, μπορείς να κάνεις διάφορους υπολογισμούς και να παρακολουθήσεις τα αποτελέσματα.

Μάστερ του Python-Debugger με PDB

Εκτέλεση απλού υπολογισμού

Εκτέλεσε έναν απλό υπολογισμό, για παράδειγμα, την πρόσθεση των b και c. Αυτό είναι ένα απλό βήμα για να βεβαιωθείς ότι ο κώδικας λειτουργεί όπως αναμένεται. Η αναμενόμενη έξοδος θα πρέπει να είναι 18, αν προσθέσεις b (5) και c (13).

Κατακτώντας τον Python-Debugger με PDB

Διαχείριση σφαλμάτων

Τώρα εμφανίζεται ένα σφάλμα όταν προσπαθείς να προσθέσεις τη λίστα a με τον ακέραιο b. Η Python θα εκδώσει ένα TypeError, που υποδεικνύει ότι προσπαθείς να συγχωνεύσεις μια λίστα με έναν ακέραιο. Αυτό μπορεί να προκαλέσει σύγχυση στην αρχή, ειδικά σε ένα μεγαλύτερο πρόγραμμα.

Μάστερ του Python-Debugger με PDB

Χρήση του pdb.set_trace()

Για να μάθεις περισσότερα σχετικά με την αιτία του σφάλματος, πρόσθεσε την εντολή pdb.set_trace() πριν από τη προβληματική γραμμή. Όταν εκτελέσεις τώρα τον κώδικα, η εκτέλεση θα σταματήσει ακριβώς σε αυτό το σημείο. Αυτό σου δίνει τη δυνατότητα να ξεκινήσεις αλληλεπιδράσεις με τον κώδικα και να δεις τι περιέχουν πραγματικά οι μεταβλητές.

Μάστερ του Python-Debugger με PDB

Επιθεώρηση μεταβλητών

Αφού σταματήσει η εκτέλεση, μπορείς να επιθεωρήσεις διάφορες μεταβλητές. Έτσι μπορείς να ελέγξεις ποιες τιμές τους έχουν αποδοθεί. Όταν απλά εισάγεις το όνομα της μεταβλητής στο τερματικό, θα δεις την τρέχουσα τιμή. Για παράδειγμα, όταν περάσεις a, θα λάβεις τη λίστα που ορίστηκε στην αρχή.

Δοκιμή εκφράσεων

Επιπλέον των μεταβλητών, μπορείς να δοκιμάσεις και εκφράσεις κώδικα στον αποσφαλμαντή. Για παράδειγμα, μπορείς να δοκιμάσεις b + b για να δεις τι συμβαίνει. Αυτό θα σε οδηγήσει σε πιθανά λογικά σφάλματα στον κώδικα σου, ή μπορείς απλά να δοκιμάσεις να εκτελέσεις print(b) για να δεις αμέσως το αποτέλεσμα.

Κατέχοντας τον Python-Debugger με PDB

Περαιτέρω δυνατότητες χρήσης

Ο αποσφαλμαντής PDB προσφέρει πολλές άλλες λειτουργίες που μπορείς να διαβάσεις στην επίσημη τεκμηρίωση. Ειδικά η ποικιλία των διαδραστικών δυνατοτήτων καθιστά αυτό το εργαλείο εξαιρετικά χρήσιμο. Έτσι, εξερεύνησε ποιες άλλες λειτουργίες προσφέρει το module και πως μπορείς να τις χρησιμοποιήσεις για τα προγράμματά σου.

Μάστερ του Python-Debugger με PDB

Τερματισμός της διαδικασίας αποσφαλμάτωσης

Αφού συγκεντρώσεις όλες τις απαραίτητες πληροφορίες, μπορείς να τερματίσεις τη διαδικασία αποσφαλμάτωσης και να προχωρήσεις στο επόμενο μέρος του κώδικά σου. Να θυμάσαι ότι μπορείς οποιαδήποτε στιγμή να χρησιμοποιήσεις το pdb.set_trace() για να σταματήσεις την εκτέλεση του προγράμματός σου σε ένα συγκεκριμένο σημείο και να επιθεωρήσεις τις μεταβλητές.

Σύνοψη

Με τον αποσφαλμαντή PDB έχεις ένα ισχυρό εργαλείο στα χέρια σου για να διευκολύνεις την αποσφαλμάτωση στα έργα Python σου. Με το pdb.set_trace() μπορείς να διακόψεις τον κώδικα, να επιθεωρήσεις τις μεταβλητές και να ελέγξεις την τρέχουσα κατάσταση του προγράμματος. Αυτές οι τεχνικές είναι ιδιαίτερα χρήσιμες όταν εργάζεσαι σε πιο σύνθετες εφαρμογές και θέλεις να διατηρήσεις τον έλεγχο.

Συχνές ερωτήσεις

Τι είναι το PDB;Το PDB είναι ο αποσφαλμαντής Python, με τον οποίο μπορείς να κάνεις αποσφαλμάτωση του κώδικα Python.

Πώς εισάγω το module PDB;Εισάγεις το PDB βάζοντας την εντολή import pdb στην αρχή του script σου.

Τι κάνει η λειτουργία pdb.set_trace();Με αυτή τη λειτουργία μπορείς να σταματήσεις την εκτέλεση του κώδικα και να επιθεωρήσεις τις τρέχουσες τιμές των μεταβλητών.

Μπορώ να κάνω υπολογισμούς στον αποσφαλμαντή;Ναι, μπορείς να εκτελείς εντολές και να επιθεωρείς μεταβλητές οποιαδήποτε στιγμή ενώ είσαι στον αποσφαλμαντή.

Πού μπορώ να βρω περισσότερες πληροφορίες για το module PDB;Περισσότερες πληροφορίες μπορείς να βρεις στην επίσημη τεκμηρίωση Python στο doc.python.org.