Η μέθοδος 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()μέθοδο.








