Εισαγωγή μονάδας σε Python με παραδείγματα
⚡ Έξυπνη Σύνοψη
Εισαγωγή σε Python Επιτρέπει σε ένα αρχείο να επαναχρησιμοποιεί τις μεταβλητές, τις συναρτήσεις και τις κλάσεις που ορίζονται σε ένα άλλο. Μια ενότητα είναι απλώς ένα αρχείο .py, ενώ ένα πακέτο ομαδοποιεί σχετικές ενότητες μέσα σε έναν κατάλογο που επισημαίνεται από ένα αρχείο __init__.py.

Οι παρακάτω ενότητες εξηγούν τις ενότητες, τα πακέτα, τα διαφορετικά στυλ εισαγωγής και τον τρόπο λειτουργίας των απόλυτων και σχετικών εισαγωγών. Python.
Σε τι περιλαμβάνονται οι ενότητες Python?
Μια ενότητα είναι ένα αρχείο με Python κώδικα. Ο κώδικας μπορεί να έχει τη μορφή μεταβλητών, συναρτήσεων ή μιας καθορισμένης κλάσης. Το όνομα αρχείου γίνεται το όνομα της ενότητας.
Για παράδειγμα, εάν το όνομα του αρχείου σας είναι guru99.py, το όνομα της μονάδας θα είναι guru99. Με τη λειτουργικότητα της μονάδας, μπορείτε να σπάσετε τον κώδικά σας σε διαφορετικά αρχεία αντί να γράψετε τα πάντα μέσα σε ένα αρχείο.
Ποια είναι η Python μονάδα εισαγωγής;
Ένα αρχείο θεωρείται ενότητα (module) στο PythonΓια να χρησιμοποιήσετε την ενότητα, πρέπει να την εισαγάγετε χρησιμοποιώντας το εισαγωγή λέξη-κλειδί. Οι συναρτήσεις ή οι μεταβλητές που υπάρχουν μέσα στο αρχείο μπορούν να χρησιμοποιηθούν σε ένα άλλο αρχείο εισάγοντας την ενότητα. Αυτή η λειτουργικότητα είναι διαθέσιμη και σε άλλες γλώσσες όπως TypeScript, JavaΓραφή, Java, Ruby, κ.λπ.
Πώς να δημιουργήσετε και να εισαγάγετε μια ενότητα Python?
Τώρα θα δημιουργήσουμε μια ενότητα και θα την εισαγάγουμε σε ένα άλλο αρχείο.
Ακολουθεί η ροή για τη δημιουργία και εισαγωγή της λειτουργικής μονάδας όπως φαίνεται στο στιγμιότυπο οθόνης:
Ακολουθήστε τα βήματα που δίνονται για να δημιουργήσετε μια ενότητα στο Python.
Η δομή του φακέλου που χρησιμοποιείται για τον έλεγχο του κώδικα είναι η εξής:
modtest/ test.py display.py
Βήμα 1) Δημιουργήστε ένα αρχείο και ονομάστε το test.py
Βήμα 2) Μέσα στο test.py δημιουργήστε μια συνάρτηση που ονομάζεται display_message()
Def display_message():
return "Welcome to Guru99 Tutorials!"
Βήμα 3) Τώρα δημιουργήστε ένα άλλο αρχείο display.py.
Βήμα 4) Μέσα στο display.py, εισαγάγετε το αρχείο test.py της ενότητας, όπως φαίνεται παρακάτω:
import test
Κατά την εισαγωγή, δεν χρειάζεται να αναφέρετε το test.py αλλά μόνο το όνομα του αρχείου.
Βήμα 5) Στη συνέχεια, μπορείτε να καλέσετε τη συνάρτηση display_message() από το test.py μέσα στο display.py. Πρέπει να χρησιμοποιήσετε το module_name.function_name.
Για παράδειγμα test.display_message().
Import test
print(test.display_message())
Βήμα 6) Όταν εκτελέσετε το display.py, θα λάβετε τα εξής Παραγωγή:
Welcome to Guru99 Tutorials!
Εισαγωγή τάξης σε Python
Νωρίτερα, είδαμε μια απλή ενότητα με μια συνάρτηση. Εδώ θα δημιουργήσουμε μια κλάση και θα αναφερθούμε στην κλάση που βρίσκεται μέσα σε ένα άλλο αρχείο.
Η δομή των φακέλων για τη δοκιμή του κώδικα έχει ως εξής:
myproj/ Car.py display.py
Δημιουργήστε ένα αρχείο που ονομάζεται Car.py με τον ακόλουθο κώδικα:
Όνομα αρχείου: Car.py
class Car: brand_name = "BMW" model = "Z4" manu_year = "2020" def __init__(self, brand_name, model, manu_year): self.brand_name = brand_name self.model = model self.manu_year = manu_year def car_details(self): print("Car brand is ", self.brand_name) print("Car model is ", self.model) print("Car manufacture year is ", self.manu_year) def get_Car_brand(self): print("Car brand is ", self.brand_name) def get_Car_model(self): print("Car model is ", self.model)
Στο αρχείο Car.py, υπάρχουν τα χαρακτηριστικά brand_name, model και manu_year. Οι συναρτήσεις που ορίζονται μέσα στην κλάση είναι car_details(), get_Car_brand(), get_Car_model().
Ας χρησιμοποιήσουμε τώρα το αρχείο Car.py ως λειτουργική μονάδα σε ένα άλλο αρχείο που ονομάζεται display.py.
Όνομα αρχείου: display.py
import Car car_det = Car.Car("BMW","Z5", 2020) print(car_det.brand_name) print(car_det.car_details()) print(car_det.get_Car_brand()) print(car_det.get_Car_model())
Παραγωγή:
BMW Car brand is BMW Car model is Z5 Car manufacture year is 2020 Car brand is BMW Car model is Z5
Έτσι, μπορούμε να έχουμε πρόσβαση σε όλες τις μεταβλητές και τις συναρτήσεις από το Car.py χρησιμοποιώντας την ενότητα Car.
Χρήση της ενότητας από για εισαγωγή
Μπορείτε να εισαγάγετε μόνο ένα μικρό μέρος της ενότητας, δηλαδή μόνο τις απαιτούμενες συναρτήσεις και τα ονόματα μεταβλητών από την ενότητα αντί να εισαγάγετε τον πλήρη κώδικα.
Όταν θέλετε να εισαχθούν μόνο συγκεκριμένα στοιχεία, μπορείτε να χρησιμοποιήσετε τη λέξη-κλειδί "από" για να εισαγάγετε ό,τι θέλετε.
Άρα η σύνταξη είναι
from module import your function_name , variables,... etc.
Η δομή του φακέλου που χρησιμοποιείται για τον έλεγχο του κώδικα είναι η εξής:
modtest/ test.py display.py
Στο test.py υπάρχουν 2 συναρτήσεις όπως φαίνεται:
Όνομα αρχείου: test.py
defdisplay_message(): return "Welcome to Guru99 Tutorials!" def display_message1(): return "All about Python!"
Τώρα θέλετε τη συνάρτηση display_message(). Η συνάρτηση ή η μεταβλητή που εισάγετε μπορεί να προσπελαστεί απευθείας όπως φαίνεται παρακάτω:
Όνομα αρχείου: display.py
from test import display_message print(display_message())
Παραγωγή:
Welcome to Guru99 Tutorials!
Τώρα, αν τύχει να χρησιμοποιήσετε τη συνάρτηση display_message1(), θα εμφανιστεί ένα σφάλμα ότι η συνάρτηση δεν έχει οριστεί όπως φαίνεται παρακάτω:
from test import display_message print(display_message1())
Παραγωγή:
Traceback (most recent call last): File "display.py", line 3, in <module> print(display_message1()) Name Error: name 'display_message1' is not defined
Εισαγωγή όλων από τη μονάδα
Η εισαγωγή σάς επιτρέπει να εισαγάγετε ολόκληρη την ενότητα χρησιμοποιώντας την εισαγωγή ακολουθούμενη από το όνομα της ενότητας, δηλαδή το όνομα αρχείου ή τη βιβλιοθήκη που θα χρησιμοποιηθεί.
Σύνταξη:
Import module
Ή χρησιμοποιώντας
from module import *
Η δομή του φακέλου που χρησιμοποιείται για τον έλεγχο του κώδικα είναι η εξής:
modtest/ test.py display.py
Ακολουθούν οι λεπτομέρειες του κώδικα μέσα στο test.py
my_name = "Guru99" my_address = "Mumbai" defdisplay_message(): return "Welcome to Guru99 Tutorials!" def display_message1(): return "All about Python!"
Χρήση της μονάδας εισαγωγής
Χρησιμοποιώντας μόνο το όνομα της ενότητας εισαγωγής, για να αναφερθείτε στις μεταβλητές και τις συναρτήσεις μέσα στην ενότητα, πρέπει να τους προσθέσετε το όνομα της ενότητας ως πρόθεμα.
Παράδειγμα
Όνομα αρχείου: display.py
Import test print(test.display_message()) print(test.display_message1()) print(test.my_name) print(test.my_address)
Η δοκιμή ονόματος ενότητας χρησιμοποιείται για να αναφερθεί στις συναρτήσεις και τις μεταβλητές μέσα στη δοκιμή ενότητας.
Παραγωγή:
Welcome to Guru99 Tutorials! All about Python! Guru99 Mumbai
Χρήση εισαγωγής *
Ας δούμε ένα παράδειγμα χρησιμοποιώντας εισαγωγή *. χρησιμοποιώντας εισαγωγή *, οι συναρτήσεις και οι μεταβλητές είναι άμεσα προσβάσιμες, όπως φαίνεται στο παρακάτω παράδειγμα:
from test import * print(display_message()) print(display_message1()) print(my_name) print(my_address)
Παραγωγή:
Welcome to Guru99 Tutorials! All about Python! Guru99 Mumbai
Η συνάρτηση dir( ).
Η dir() είναι μια ενσωματωμένη συνάρτηση στο PythonΗ συνάρτηση dir() επιστρέφει όλες τις ιδιότητες και τις μεθόδους, συμπεριλαμβανομένων των ενσωματωμένων ιδιοτήτων του δεδομένου αντικειμένου.
Έτσι, όταν χρησιμοποιείται η συνάρτηση dir() στη λειτουργική μονάδα, θα σας δώσει τις μεταβλητές και τις συναρτήσεις που υπάρχουν μέσα στη λειτουργική μονάδα.
Ακολουθεί ένα λειτουργικό παράδειγμα της dir() σε μια ενότητα. Έχουμε μια κλάση που ονομάζεται Car.py, ας εισάγουμε την Car και ας την αντιστοιχίσουμε στην dir() για να δούμε την έξοδο.
Η δομή του φακέλου για τον έλεγχο του κώδικα θα είναι η εξής:
test prop/ Car.py test.py
Όνομα αρχείου: Car.py
class Car: brand_name = "BMW" model = "Z4" manu_year = "2020" def __init__(self, brand_name, model, manu_year): self.brand_name = brand_name self.model = model self.manu_year = manu_year def car_details(self): print("Car brand is ", self.brand_name) print("Car model is ", self.model) print("Car manufacture year is ", self.manu_year) def get_Car_brand(self): print("Car brand is ", self.brand_name) def get_Car_model(self): print("Car model is ", self.model)
Όνομα αρχείου: test.py
import Car class_contents = dir(Car) print(class_contents)
Η έξοδος μας δίνει το όνομα της κλάσης και όλες τις συναρτήσεις που ορίζονται στο Car.py.
Μπορείτε επίσης να δοκιμάσετε να χρησιμοποιήσετε το dir() σε μια ενσωματωμένη μονάδα που είναι διαθέσιμη σε PythonΑς δοκιμάσουμε το ίδιο και στο json όπως φαίνεται στο παρακάτω παράδειγμα. Θα εμφανίσει όλες τις ιδιότητες και τις μεθόδους που είναι διαθέσιμες στο json μονάδα μέτρησης.
Import json
json_details = dir(json)
print(json_details)
Παραγωγή:
['JSONDecodeError', 'JSONDecoder', 'JSONEncoder', '__all__', '__author__', '__bu iltins__', '__cached__', '__doc__', '__file__', '__loader__', '__name__', '__pac kage__', '__path__', '__spec__', '__version__', '_default_decoder', '_default_en coder', 'codecs', 'decoder', 'detect_encoding', 'dump', 'dumps', 'encoder', 'loa d', 'loads', 'scanner']
Πακέτα
Ένα πακέτο είναι ένας κατάλογος με όλα τα modules που ορίζονται μέσα του. Για να κάνετε ένα Python Ο διερμηνέας το αντιμετωπίζει ως πακέτο, ο κατάλογός σας θα πρέπει να περιέχει το αρχείο __init__.py. Το __init__.py μετατρέπει τον κατάλογο σε πακέτο. Ακολουθεί η διάταξη του πακέτου στην οποία θα εργαστούμε.
Το όνομα του πακέτου είναι το πακέτο μουΓια να ξεκινήσετε να εργάζεστε με το πακέτο, δημιουργήστε έναν κατάλογο με το όνομα mypackage/. Μέσα στον κατάλογο, δημιουργήστε ένα κενό αρχείο με το όνομα __init__.py. Δημιουργήστε 3 ακόμη αρχεία module1.py, module2.py και module3.py και ορίστε τις συναρτήσεις όπως φαίνεται στο στιγμιότυπο οθόνης. Ακολουθούν οι λεπτομέρειες των module1.py, module2.py και module3.py
module1.py
def mod1_func1(): print("Welcome to Module1 function1") def mod1_func2(): print("Welcome to Module1 function2") def mod1_func3(): print("Welcome to Module1 function3")
module2.py
def mod2_func1(): print("Welcome to Module2 function1") def mod2_func2(): print("Welcome to Module2 function2") def mod2_func3(): print("Welcome to Module2 function3")
module3.py
def mod3_func1(): print("Welcome to Module3 function1") def mod3_func2(): print("Welcome to Module3 function2") def mod3_func3(): print("Welcome to Module3 function3")
The πακέτο είναι έτοιμο για χρήση. Τώρα καλέστε το πακέτο που βρίσκεται μέσα σε οποιοδήποτε από τα αρχεία σας, όπως φαίνεται παρακάτω στο test.py:
Εδώ, το mypackage.module1 εισάγεται και δίνεται ένα ψευδώνυμο ως λειτουργία 1Ομοίως, μπορείτε να χρησιμοποιήσετε τις άλλες ενότητες module2.py και module3.py από το mypackage.
import mypackage.module1 as mod1 print(mod1.mod1_func1()) print(mod1.mod1_func2()) print(mod1.mod1_func2())
Παραγωγή:
Welcome to Module1 function1 None Welcome to Module1 function2 None Welcome to Module1 function2 None
Μόλις παρουσιάσαμε το πακέτο με μια απλή ενότητα με συναρτήσεις στο εσωτερικό της. Ανάλογα με το έργο σας, μπορείτε επίσης να δημιουργήσετε πακέτα που έχουν υποπακέτα, δηλαδή υποφακέλους που έχουν ενότητες με καθορισμένες κλάσεις.
Python Διαδρομή αναζήτησης ενότητας
Κατά την εκτέλεση, όταν Python συναντά όνομα μονάδας εισαγωγής, ο διερμηνέας προσπαθεί να εντοπίσει τη λειτουργική μονάδα. Αναζητά τη λειτουργική μονάδα στην ενσωματωμένη λίστα λειτουργικών μονάδων και, στη συνέχεια, σε όλους τους καταλόγους που έχουν οριστεί μέσα στο sys.path.
Συνοψίζοντας, ο διερμηνέας κάνει την ακόλουθη αναζήτηση για να εντοπίσει τη μονάδα:
- Στον τρέχοντα κατάλογο σας.
- Στη λίστα ενσωματωμένων ενοτήτων.
- Μέσα στους καταλόγους sys.path.
Μπορείτε να λάβετε τις λεπτομέρειες του sys.path εισάγοντας την ενότητα sys και εκτυπώνοντας το sys.path. Θα σας εμφανιστεί η λίστα με τους καταλόγους όπως φαίνεται παρακάτω:
importsys
print(sys.path)
Παραγωγή:
['Python Latest\\task2', 'Users\\AppData\\Local\\Programs\\Python\ \Python37\\python37.zip', 'Users\\AppData\\Local\\Programs\\Python\\P ython37\\DLLs']
Μπορείτε επίσης να τροποποιήσετε τη διαδρομή και να διατηρήσετε τους καταλόγους σύμφωνα με τις απαιτήσεις σας.
Χρήση ψευδωνύμου μονάδας στην εισαγωγή
Μπορείτε επίσης να μετατρέψετε το όνομα της ενότητας σε συντομότερη μορφή δίνοντάς της ένα ψευδώνυμο. Το ψευδώνυμο μπορεί να δημιουργηθεί χρησιμοποιώντας το as λέξη-κλειδί.
Σύνταξη:
import filename as alias name
Η δομή του φακέλου για τον έλεγχο του κώδικα θα είναι η εξής:
Mod test/ test.py display.py
Ακολουθεί ο κώδικας μέσα στο test.py
my_name = "Guru99" my_address = "Mumbai" def display_message(): return "Welcome to Guru99 Tutorials!" def display_message1(): return "All about Python!"
Τώρα θα χρησιμοποιήσουμε ένα ψευδώνυμο για το test.py στο display.py
Import test as t print(t.display_message()) print(t.display_message1()) print(t.my_name) print(t.my_address)
Το ψευδώνυμο που χρησιμοποιείται για την ενότητα δοκιμής είναι t. Έτσι, οι συναρτήσεις και οι μεταβλητές από το test.py μπορούν να αναφερθούν χρησιμοποιώντας το ψευδώνυμο t.
Παραγωγή:
Welcome to Guru99 Tutorials! All about Python! Guru99 Mumbai
Απόλυτες και Σχετικές Εισαγωγές σε Python
Τώρα ξέρετε πώς να εισάγετε ένα αρχείο ως λειτουργική μονάδα μέσα σε άλλο αρχείο. Ας δούμε τώρα πώς να διαχειριστούμε τα αρχεία που είναι διαθέσιμα σε φακέλους. Τα αρχεία στους φακέλους μπορούν να εισαχθούν είτε χρησιμοποιώντας απόλυτες είτε σχετικές εισαγωγές.
Σκεφτείτε ότι έχετε τη δομή του φακέλου του έργου σας, όπως φαίνεται παρακάτω:
Ο ριζικός φάκελος είναι ο myproject/. Έχει δύο υποφακέλους, το package1 και το package2.
Ο φάκελος package1 έχει δύο ενότητες, την module1.py και την module2.py.
Ο φάκελος package2 έχει μια κλάση myclass.py, ένα υποπακέτο subpkg με module3.py και τελευταίο module4.py.
- Στο module1.py, υπάρχει μια συνάρτηση που ονομάζεται myfunc1.
- Στο module2.py, υπάρχει μια συνάρτηση που ονομάζεται myfunc2.
- Στο module3.py, υπάρχει μια συνάρτηση που ονομάζεται myfunc3.
- Στο module4.py, υπάρχει μια συνάρτηση που ονομάζεται myfunc4.
Χρήση Απόλυτων Εισαγωγών
Για απόλυτες εισαγωγές, πρέπει να προσθέσετε ολόκληρη τη διαδρομή της ενότητας σας απευθείας από τον ριζικό φάκελο του έργου.
Ας δούμε τώρα πώς να χρησιμοποιήσουμε απόλυτες εισαγωγές για να αναφερθούμε στις συναρτήσεις που υπάρχουν σε κάθε μία από τις ενότητες.
Για να εργαστείτε με τη συνάρτηση myfunc1, θα χρειαστεί να την εισαγάγετε ως εξής:
from package1.module1 import myfunc1 or from package1 import module1 module1.myfunc1()
Για να εργαστείτε με τη συνάρτηση myfunc3, θα χρειαστεί να την εισαγάγετε ως εξής:
from package1.subpkg.module3 import myfunc3 or from package1.subpkg import module3 module3.myfunc3()
Πλεονεκτήματα και μειονεκτήματα της χρήσης απόλυτων εισαγωγών
Ακολουθούν τα πλεονεκτήματα της χρήσης απόλυτων εισαγωγών:
- Γίνεται εύκολο να tracΕπιστρέψτε τις ενότητες για έλεγχο κώδικα.
- Εύκολο στη χρήση και πολύ απλό.
- Εάν το έργο μετακινηθεί σε διαφορετική διαδρομή, οι εισαγωγές θα παραμείνουν οι ίδιες.
Μειονεκτήματα της χρήσης απόλυτων εισαγωγών
Ακολουθούν τα μειονεκτήματα της χρήσης απόλυτων εισαγωγών:
- Η διαδρομή εισαγωγής μπορεί να γίνει πολύ μεγάλη σε περίπτωση που οι ενότητες είναι ένθετες και τα ονόματα των ενοτήτων είναι μεγάλα.
Χρήση σχετικών εισαγωγών
Λαμβάνοντας υπόψη την ίδια δομή φακέλων που αναφέρθηκε παραπάνω, θα δούμε πώς να την εισαγάγουμε χρησιμοποιώντας σχετικές εισαγωγές.
Σε μια σχετική εισαγωγή, η ενότητα που θα εισαχθεί είναι σχετική με την τρέχουσα τοποθεσία, δηλαδή, την τοποθεσία όπου υπάρχει η πρόταση εισαγωγής.
Σύνταξη
Σε σχετικές εισαγωγές, πρέπει να προσθέσετε μια τελεία (.) πριν από το όνομα της μονάδας κατά την εισαγωγή χρησιμοποιώντας από.
Θα υπάρχουν δύο τελείες (..) πριν από το όνομα της ενότητας εάν η ενότητα βρίσκεται ένα επίπεδο πάνω από την τρέχουσα τοποθεσία.
Αναφερόμενοι στο σχήμα δομής φακέλων που αναφέρθηκε παραπάνω, έχουμε τις ακόλουθες ενότητες με τις λειτουργίες τους, στις οποίες πρέπει να αναφερθούμε.
- Στο module1.py, υπάρχει μια συνάρτηση που ονομάζεται myfunc1.
- Στο module2.py, υπάρχει μια συνάρτηση που ονομάζεται myfunc2.
- Στο module3.py, υπάρχει μια συνάρτηση που ονομάζεται myfunc3.
- Στο module4.py, υπάρχει μια συνάρτηση που ονομάζεται myfunc4.
Για να εργαστείτε με τη συνάρτηση myfunc1, θα χρειαστεί να την εισαγάγετε ως εξής:
from .module1 import myfunc1
Για να εργαστείτε με τη συνάρτηση myfunc3, θα χρειαστεί να την εισαγάγετε ως εξής:
from .subpkg.module3 import myfunc3
Πλεονεκτήματα των σχετικών εισαγωγών
- Είναι εύκολο να δουλέψεις με σχετικές εισαγωγές.
- Από την τρέχουσα τοποθεσία, οι εισαγωγές μπορούν να συντομευθούν σε σύγκριση με τις απόλυτες εισαγωγές.
Μειονεκτήματα των σχετικών εισαγωγών
- Χρησιμοποιώντας σχετικές εισαγωγές, είναι δύσκολο να tracπίσω εκεί που βρίσκεται ο κώδικας.



