Μεταγλώττιση Python ()

Η μέθοδος compile () επιστρέφει ένα αντικείμενο κώδικα Python από την πηγή (κανονική συμβολοσειρά, συμβολοσειρά byte ή αντικείμενο AST).

Η σύνταξη του compile()είναι:

 μεταγλώττιση (πηγή, όνομα αρχείου, λειτουργία, σημαίες = 0, dont_inherit = False, optimize = -1)

compile() Η μέθοδος χρησιμοποιείται εάν ο κώδικας Python είναι σε μορφή συμβολοσειράς ή είναι αντικείμενο AST και θέλετε να τον αλλάξετε σε αντικείμενο κώδικα.

Το αντικείμενο κώδικα που επιστρέφεται με τη compile()μέθοδο μπορεί αργότερα να κληθεί χρησιμοποιώντας μεθόδους όπως: exec () και eval () που θα εκτελέσουν δυναμικά δημιουργημένο κώδικα Python.

compile () Παράμετροι

  • source - μια κανονική συμβολοσειρά, μια συμβολοσειρά byte ή ένα αντικείμενο AST
  • filename- αρχείο από το οποίο διαβάστηκε ο κωδικός. Εάν δεν διαβάστηκε από ένα αρχείο, μπορείτε να δώσετε ένα όνομα μόνοι σας
  • mode- Είτε execή evalείτε single.
    • eval - δέχεται μόνο μία έκφραση.
    • exec - Μπορεί να πάρει ένα μπλοκ κώδικα που έχει δηλώσεις Python, τάξη και συναρτήσεις κ.ο.κ.
    • single - εάν αποτελείται από μία μόνο διαδραστική δήλωση
  • flags(προαιρετικό) και dont_inherit(προαιρετικό) - ελέγχει ποιες μελλοντικές δηλώσεις επηρεάζουν τη συλλογή της πηγής. Προεπιλεγμένη τιμή: 0
  • optimize(προαιρετικό) - επίπεδο βελτιστοποίησης του μεταγλωττιστή. Προεπιλεγμένη τιμή -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()μέθοδο.

ενδιαφέροντα άρθρα...