Η ενσωματωμένη μέθοδος () επιστρέφει μια μορφοποιημένη αναπαράσταση της δεδομένης τιμής που ελέγχεται από τον προσδιοριστή μορφής.
Η format()
συνάρτηση είναι παρόμοια με τη μέθοδο μορφής String. Εσωτερικά, και οι δύο μέθοδοι καλούν τη __format__()
μέθοδο ενός αντικειμένου.
Ενώ η ενσωματωμένη format()
συνάρτηση είναι μια εφαρμογή χαμηλού επιπέδου για τη μορφοποίηση ενός αντικειμένου χρησιμοποιώντας __format__()
εσωτερικά, η συμβολοσειρά format()
είναι μια εφαρμογή υψηλότερου επιπέδου ικανή να εκτελεί πολύπλοκες λειτουργίες μορφοποίησης σε πολλές συμβολοσειρές αντικειμένων επίσης.
Η σύνταξη της μορφής () είναι:
μορφή (τιμή (, format_spec))
μορφή () Παράμετροι
Η format()
συνάρτηση παίρνει δύο παραμέτρους:
- τιμή - τιμή που πρέπει να μορφοποιηθεί
- format_spec - Η προδιαγραφή για το πώς θα πρέπει να μορφοποιηθεί η τιμή.
Ο προσδιοριστής μορφής θα μπορούσε να έχει τη μορφή:
((fill) align) (σύμβολο) (#) (0) (πλάτος) (,) (. ακρίβεια) (τύπος) όπου, οι επιλογές είναι πλήρωση :: = οποιοσδήποτε χαρακτήρας ευθυγράμμιση :: = "" | "=" | "^" σημάδι :: = "+" | "-" | πλάτος :: = ακέραιος ακρίβεια :: = ακέραιος τύπος :: = "b" | "γ" | "δ" | "ε" | "Ε" | "στ" | "F" | "g" | "Ζ" | "ν" | "o" | "s" | "x" | "Χ" | "%"
Επισκεφτείτε αυτούς τους συνδέσμους για να μάθετε περισσότερα σχετικά με τους τύπους μορφής και την ευθυγράμμιση.
Επιστροφή τιμής από τη μορφή ()
Η format()
συνάρτηση επιστρέφει μια μορφοποιημένη αναπαράσταση μιας δεδομένης τιμής που καθορίζεται από τον προσδιοριστή μορφής.
Παράδειγμα 1: Μορφοποίηση αριθμών με μορφή ()
# d, f and b are type # integer print(format(123, "d")) # float arguments print(format(123.4567898, "f")) # binary format print(format(12, "b"))
Παραγωγή
123 123.456790 1100
Παράδειγμα 2: Μορφοποίηση αριθμών με πλήρωση, ευθυγράμμιση, σύμβολο, πλάτος, ακρίβεια και τύπο
# integer print(format(1234, "*>+7,d")) # float number print(format(123.4567, "^-09.3f"))
Παραγωγή
* + 1,234 0123,4570
Εδώ, κατά τη μορφοποίηση του ακέραιου 1234
, καθορίσαμε τον προσδιοριστή μορφοποίησης *>+7,d
. Ας καταλάβουμε κάθε επιλογή:
*
- Είναι ο χαρακτήρας γεμίσματος που γεμίζει τους κενούς χώρους μετά τη μορφοποίηση>
- Είναι η επιλογή σωστής ευθυγράμμισης που ευθυγραμμίζει τη συμβολοσειρά εξόδου προς τα δεξιά+
- Είναι η επιλογή πινακίδας που αναγκάζει τον αριθμό που πρέπει να υπογραφεί (έχοντας ένα σημάδι στα αριστερά του)7
- Είναι η επιλογή πλάτους που αναγκάζει τον αριθμό να πάρει ένα ελάχιστο πλάτος 7, ενώ άλλα κενά θα συμπληρωθούν με χαρακτήρα πλήρωσης,
- Είναι ο χειριστής χιλιάδων που θέτει κόμμα μεταξύ όλων των χιλιάδων.d
- Είναι η επιλογή τύπου που καθορίζει ότι ο αριθμός είναι ακέραιος.
Κατά τη μορφοποίηση του αριθμού κινητής υποδιαστολής 123.4567
, καθορίσαμε τον προσδιοριστή μορφής ^-09.3f
. Αυτά είναι:
^
- Είναι η επιλογή κεντρικής ευθυγράμμισης που ευθυγραμμίζει τη συμβολοσειρά εξόδου με το κέντρο του υπόλοιπου χώρου-
- Είναι η επιλογή σήματος που αναγκάζει μόνο αρνητικούς αριθμούς να εμφανίζουν το σύμβολο0
- Είναι ο χαρακτήρας που τοποθετείται στη θέση των κενών χώρων.9
- Είναι η επιλογή πλάτους που ορίζει το ελάχιστο πλάτος του αριθμού σε 9 (συμπεριλαμβανομένου του δεκαδικού σημείου, χιλιάδων κόμμα και σημείου).3
- Είναι ο τελεστής ακριβείας που ορίζει την ακρίβεια του δεδομένου κινούμενου αριθμού σε 3 θέσειςf
- Είναι η επιλογή τύπου που καθορίζει τον αριθμό είναι float.
Παράδειγμα 3: Χρήση μορφής () με παράκαμψη __format __ ()
# custom __format__() method class Person: def __format__(self, format): if(format == 'age'): return '23' return 'None' print(format(Person(), "age"))
Παραγωγή
23
Εδώ, έχουμε παρακάμψει τη __format__()
μέθοδο της τάξης Person
.
Δέχεται τώρα μια format
παράμετρο και επιστρέφει 23 εάν είναι ίση με 'age'
. Εάν δεν έχει καθοριστεί μορφή, None
επιστρέφεται.
Η format()
συνάρτηση εκτελείται εσωτερικά Person().__format__("age")
για την επιστροφή 23.