Η μέθοδος compile () επιστρέφει ένα αντικείμενο κώδικα Python από την πηγή (κανονική συμβολοσειρά, συμβολοσειρά byte ή αντικείμενο AST).
Η σύνταξη του compile()
είναι:
μεταγλώττιση (πηγή, όνομα αρχείου, λειτουργία, σημαίες = 0, dont_inherit = False, optimize = -1)
compile()
Η μέθοδος χρησιμοποιείται εάν ο κώδικας Python είναι σε μορφή συμβολοσειράς ή είναι αντικείμενο AST και θέλετε να τον αλλάξετε σε αντικείμενο κώδικα.
Το αντικείμενο κώδικα που επιστρέφεται με τη compile()
μέθοδο μπορεί αργότερα να κληθεί χρησιμοποιώντας μεθόδους όπως: exec () και eval () που θα εκτελέσουν δυναμικά δημιουργημένο κώδικα Python.
compile () Παράμετροι
source
- μια κανονική συμβολοσειρά, μια συμβολοσειρά byte ή ένα αντικείμενο ASTfilename
- αρχείο από το οποίο διαβάστηκε ο κωδικός. Εάν δεν διαβάστηκε από ένα αρχείο, μπορείτε να δώσετε ένα όνομα μόνοι σαςmode
- Είτεexec
ήeval
είτεsingle
.eval
- δέχεται μόνο μία έκφραση.exec
- Μπορεί να πάρει ένα μπλοκ κώδικα που έχει δηλώσεις Python, τάξη και συναρτήσεις κ.ο.κ.single
- εάν αποτελείται από μία μόνο διαδραστική δήλωση
flags
(προαιρετικό) καιdont_inherit
(προαιρετικό) - ελέγχει ποιες μελλοντικές δηλώσεις επηρεάζουν τη συλλογή της πηγής. Προεπιλεγμένη τιμή: 0optimize
(προαιρετικό) - επίπεδο βελτιστοποίησης του μεταγλωττιστή. Προεπιλεγμένη τιμή -1.
Επιστροφή τιμής από μεταγλώττιση ()
compile()
Η μέθοδος επιστρέφει ένα αντικείμενο κώδικα Python.
Παράδειγμα: Πώς λειτουργεί η μεταγλώττιση ();
codeInString = 'a = 5b=6sum=a+bprint("sum =",sum)' codeObejct = compile(codeInString, 'sumstring', 'exec') exec(codeObejct)
Παραγωγή
άθροισμα = 11
Εδώ, η πηγή είναι σε κανονική μορφή συμβολοσειράς. Το όνομα αρχείου είναι sumstring. Και, η exec
λειτουργία αργότερα επιτρέπει τη χρήση exec()
μεθόδου.
Η μέθοδος compile () μετατρέπει τη συμβολοσειρά σε αντικείμενο κώδικα Python. Στη συνέχεια, το αντικείμενο κώδικα εκτελείται χρησιμοποιώντας τη exec()
μέθοδο.