Κύρια λειτουργία Python

Σε αυτό το σεμινάριο, θα μάθουμε πώς να χρησιμοποιούμε το χαρακτηριστικό __name__ ενός προγράμματος Python για να το τρέξουμε δυναμικά σε διαφορετικά περιβάλλοντα.

Ποια είναι η κύρια () λειτουργία στο Python;

Ορισμένες γλώσσες προγραμματισμού έχουν μια ειδική λειτουργία που ονομάζεται main()που είναι το σημείο εκτέλεσης ενός αρχείου προγράμματος. Ο διερμηνέας Python, ωστόσο, εκτελεί κάθε γραμμή σειριακά από την κορυφή του αρχείου και δεν έχει καμία σαφή main()λειτουργία.

Η Python προσφέρει άλλες συμβάσεις για τον καθορισμό του σημείου εκτέλεσης. Ένας από αυτούς χρησιμοποιεί τη main()συνάρτηση και την ιδιότητα __name__ ενός αρχείου python.

Τι είναι το __name__ στο Python;

Η μεταβλητή __name__ είναι μια ειδική μεταβλητή Python που δείχνει το όνομα της τρέχουσας λειτουργικής μονάδας.

Έχει διαφορετικές τιμές ανάλογα με το πού εκτελούμε το αρχείο Python. Ας δούμε ένα παράδειγμα.

Εκτέλεση αρχείου Python ως σενάριο

Ας υποθέσουμε ότι έχουμε ένα αρχείο Python που ονομάζεται helloworld.py με το ακόλουθο περιεχόμενο:

 print(__name__) 

Εάν εκτελέσουμε helloworld.py από τη γραμμή εντολών, τότε εκτελείται ως σενάριο Python. Μπορούμε να εκτελέσουμε το πρόγραμμα Python χρησιμοποιώντας την ακόλουθη εντολή:

$ python helloworld.py

Όταν εκτελούμε το πρόγραμμα ως σενάριο, η τιμή της μεταβλητής __name__ ορίζεται σε __main__. Έτσι, το αποτέλεσμα του ακόλουθου προγράμματος θα είναι:

 __κύριος__ 

Εκτέλεση αρχείου Python ως Ενότητα

Μπορούμε επίσης να εκτελέσουμε ένα αρχείο Python ως λειτουργική μονάδα. Για αυτό, πρέπει να εισαγάγουμε αυτό το αρχείο σε άλλο πρόγραμμα Python. Ας δούμε ένα παράδειγμα.

Ας υποθέσουμε ότι έχουμε ένα αρχείο Python που ονομάζεται main.py στον ίδιο κατάλογο με το αρχείο heloworld.py. Έχει το ακόλουθο περιεχόμενο:

 import helloworld 

Όταν εκτελούμε αυτό το αρχείο, θα έχουμε την ακόλουθη έξοδο:

 Γειά σου Κόσμε 

Εδώ, μπορούμε να δούμε ότι η εισαγωγή μιας λειτουργικής μονάδας εκτελεί επίσης όλο τον κώδικα στο αρχείο μονάδας.

Όμως, μπορούμε να δούμε ότι αντί να εμφανίζει __main__, το πρόγραμμα εμφανίζει το όνομα της ενότητας, δηλαδή helloworld.

Αυτό συμβαίνει επειδή, στο πλαίσιο της εκτέλεσης ενός αρχείου Python ως λειτουργικής μονάδας, το όνομα της ίδιας της μονάδας εκχωρείται στη μεταβλητή __name__.

Χρήση εάν υπόκειται σε __name__

Τώρα που έχουμε καταλάβει πώς εκχωρείται η μεταβλητή __name__ τιμές, μπορούμε να χρησιμοποιήσουμε τον ifόρο υπό όρους για να εκτελέσουμε το ίδιο αρχείο Python σε διαφορετικά περιβάλλοντα.

Ας δούμε ένα παράδειγμα.

Ας υποθέσουμε ότι αλλάζουμε το περιεχόμενο του αρχείου helloworld.py ως εξής:

 def main(): print("Hello World") if __name__=="__main__": main() 

Τώρα, όταν το τρέχουμε ως σενάριο μέσω της γραμμής εντολών, η έξοδος θα είναι:

 Γειά σου Κόσμε 

Ωστόσο, όταν το τρέχουμε ως λειτουργική μονάδα εισάγοντάς το στο αρχείο main.py , δεν εμφανίζεται έξοδος αφού main()δεν καλείται η συνάρτηση.

Εδώ, δημιουργήσαμε μια προσαρμοσμένη main()συνάρτηση στο αρχείο helloworld.py . Εκτελείται μόνο όταν το πρόγραμμα εκτελείται ως αυτόνομο σενάριο και όχι ως εισαγόμενη λειτουργική μονάδα.

Αυτός είναι ο τυπικός τρόπος για να ορίσετε ρητά τη main()λειτουργία στο Python. Είναι μια από τις πιο δημοφιλείς περιπτώσεις χρήσης της μεταβλητής __name__ ενός αρχείου Python.

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