yodan000 έγραψε:επίσης τι σημαίνει αυτό;
- Κώδικας: Επιλογή όλων
Συμβολοσειρές τεκμηρίωσης (DocStrings)
Η Python έχει ένα θαυμάσιο χαρακτηριστικό που ονομάζεται συμβολοσειρές τεκμηρίωσης (documentation strings) και συνήθως αναφέρεται με τη συντομογραφία DocStrings. Οι συμβολοσειρές τεκμηρίωσης είναι ένα σπουδαίο εργαλείο που πρέπει να χρησιμοποιείτε διότι βοηθάει να τεκμηριώσετε το πρόγραμμα καλύτερα και έτσι γίνεται πιο εύκολα κατανοητό. Το εντυπωσιακό είναι ότι μπορούμε να πάρουμε επιστροφή τη συμβολοσειρά τεκμηρίωσης από μια συνάρτηση για παράδειγμα, ενώ το πρόγραμμα πραγματικά τρέχει!
[...]
Συμβολοσειρές τεκμηρίωσης ή documentation strings είναι ένα κομμάτι κειμένου το οποίο παρέχει ο προγραμματιστής, ούτως ώστε κάποιος άλλος όταν διαβάζει τον κώδικα να μπορεί να καταλάβει τί κάνει η εντολή.
Τα docstrings αναγνωρίζονται αυτόματα από την εντολή help. Εσώκλεισε το κείμενο σε τρία συνεχόμενα διπλά εισαγωγικά (""").
Παράδειγμα το παραπάνω που έθεσες, λίγο αλλαγμένο. Υπό μορφή "addon" (module, αρχείο το οποίο «καλείς» στην python και εκτελείς def εντολές που περιέχει το αρχείο) έχεις κάτι τέτοιο:
- Κώδικας: Επιλογή όλων
# -*- coding: utf-8 -*-
# Filename: func_doc.py
def printMax(x, y):
""" Prints the maximum of two numbers.
Oι δύο τιμές πρέπει να είναι ακέραιοι αριθμοί.
"""
x = int(x) # μετέτρεψε σε ακέραιους αριθμούς αν είναι δυνατόν
y = int(y)
if x > y:
print(x, 'is maximum')
else:
print(y, 'is maximum')
#printMax(3, 5)
#print(printMax.__doc__)
Φύλαξε τον παραπάνω κώδικα στον προσωπικό σου φάκελο (/home/user) σε αρχείο με το όνομα: func_doc.py
Ανοίγεις το τερματικό και εκτελείς:
- Κώδικας: Επιλογή όλων
python -c "import func_doc; help(func_doc.printMax)"
(Πιέζεις "q" για να βγεις)
* Η παραπάνω γραμμή κώδικα είναι το ίδιο σαν να έγραψες:
- Κώδικας: Επιλογή όλων
python
Μετά:
- Κώδικας: Επιλογή όλων
import func_doc
help(func_doc.printMax)
* Το αρχείο func_doc.py καλείται ως func_doc module με την εντολή import
* Σε ενδιαφέρει το docstring του def printMax που είναι στο func_doc.py
* Εσύ εκτελείς το help() με το func_doc.printMax («το def printMax του module func_doc»)