Σε αυτό το άρθρο, θα μάθετε να δημιουργείτε και να εισάγετε προσαρμοσμένες ενότητες στο Python. Επίσης, θα βρείτε διαφορετικές τεχνικές για την εισαγωγή και χρήση προσαρμοσμένων και ενσωματωμένων ενοτήτων στο Python.
Βίντεο: Ενότητες Python
Τι είναι οι ενότητες στο Python;
Οι ενότητες αναφέρονται σε ένα αρχείο που περιέχει δηλώσεις και ορισμούς Python.
Ένα αρχείο που περιέχει κώδικα Python, για παράδειγμα:, example.py
ονομάζεται ενότητα και το όνομα της μονάδας θα είναι example
.
Χρησιμοποιούμε ενότητες για την κατανομή μεγάλων προγραμμάτων σε μικρά διαχειρίσιμα και οργανωμένα αρχεία. Επιπλέον, οι ενότητες παρέχουν επαναχρησιμοποίηση κώδικα.
Μπορούμε να καθορίσουμε τις πιο χρησιμοποιούμενες λειτουργίες μας σε μια ενότητα και να την εισαγάγουμε, αντί να αντιγράφουμε τους ορισμούς τους σε διαφορετικά προγράμματα.
Ας δημιουργήσουμε μια ενότητα. Πληκτρολογήστε τα παρακάτω και αποθηκεύστε το ως example.py
.
# Python Module example def add(a, b): """This program adds two numbers and return the result""" result = a + b return result
Εδώ, έχουμε ορίσει μια συνάρτηση add()
μέσα σε μια ενότητα που ονομάζεται example
. Η συνάρτηση παίρνει δύο αριθμούς και επιστρέφει το άθροισμά τους.
Πώς να εισαγάγετε μονάδες στο Python;
Μπορούμε να εισαγάγουμε τους ορισμούς μέσα σε μια ενότητα σε μια άλλη ενότητα ή στον διαδραστικό διερμηνέα στο Python.
Χρησιμοποιούμε τη import
λέξη-κλειδί για να το κάνουμε αυτό. Για να εισαγάγετε την προηγουμένως καθορισμένη λειτουργική μονάδα example
, πληκτρολογούμε τα ακόλουθα στην προτροπή Python.
>>> import example
Αυτό δεν εισάγει τα ονόματα των συναρτήσεων που ορίζονται example
απευθείας στον τρέχοντα πίνακα συμβόλων. Εισάγει μόνο το όνομα της ενότητας example
.
Χρησιμοποιώντας το όνομα της μονάδας μπορούμε να έχουμε πρόσβαση στη λειτουργία χρησιμοποιώντας τον .
χειριστή κουκίδων . Για παράδειγμα:
>>> example.add(4,5.5) 9.5
Η Python διαθέτει τόνους τυπικών ενοτήτων. Μπορείτε να δείτε την πλήρη λίστα των τυπικών ενοτήτων Python και τις περιπτώσεις χρήσης τους. Αυτά τα αρχεία βρίσκονται στον κατάλογο Lib μέσα στην τοποθεσία όπου εγκαταστήσατε το Python.
Οι τυπικές ενότητες μπορούν να εισαχθούν με τον ίδιο τρόπο όπως εισάγουμε τις λειτουργικές μονάδες που καθορίζονται από τον χρήστη.
Υπάρχουν διάφοροι τρόποι εισαγωγής ενοτήτων. Παρατίθενται παρακάτω…
Δήλωση εισαγωγής Python
Μπορούμε να εισαγάγουμε μια ενότητα χρησιμοποιώντας τη import
δήλωση και να αποκτήσουμε πρόσβαση στους ορισμούς μέσα σε αυτήν χρησιμοποιώντας τον τελεστή κουκίδων όπως περιγράφεται παραπάνω. Εδώ είναι ένα παράδειγμα.
# import statement example # to import standard module math import math print("The value of pi is", math.pi)
Όταν εκτελείτε το πρόγραμμα, η έξοδος θα είναι:
Η τιμή του pi είναι 3.141592653589793
Εισαγωγή με μετονομασία
Μπορούμε να εισαγάγουμε μια ενότητα μετονομάζοντάς την ως εξής:
# import module by renaming it import math as m print("The value of pi is", m.pi)
Μετονομάσαμε τη math
λειτουργική μονάδα ως m
. Αυτό μπορεί να μας εξοικονομήσει χρόνο πληκτρολόγησης σε ορισμένες περιπτώσεις.
Σημειώστε ότι το όνομα math
δεν αναγνωρίζεται στο πεδίο εφαρμογής μας. Ως εκ τούτου, math.pi
είναι άκυρη και m.pi
είναι η σωστή εφαρμογή.
Python από… δήλωση εισαγωγής
Μπορούμε να εισαγάγουμε συγκεκριμένα ονόματα από μια ενότητα χωρίς να εισαγάγουμε τη λειτουργική μονάδα στο σύνολό της. Εδώ είναι ένα παράδειγμα.
# import only pi from math module from math import pi print("The value of pi is", pi)
Εδώ, εισαγάγαμε μόνο το pi
χαρακτηριστικό από τη math
λειτουργική μονάδα.
Σε τέτοιες περιπτώσεις, δεν χρησιμοποιούμε τον τελεστή κουκκίδων. Μπορούμε επίσης να εισαγάγουμε πολλά χαρακτηριστικά ως εξής:
>>> from math import pi, e >>> pi 3.141592653589793 >>> e 2.718281828459045
Εισαγάγετε όλα τα ονόματα
Μπορούμε να εισαγάγουμε όλα τα ονόματα (ορισμούς) από μια ενότητα χρησιμοποιώντας την ακόλουθη δομή:
# import all names from the standard module math from math import * print("The value of pi is", pi)
Εδώ, έχουμε εισαγάγει όλους τους ορισμούς από τη μαθηματική ενότητα. Αυτό περιλαμβάνει όλα τα ονόματα που είναι ορατά στο πεδίο εφαρμογής μας, εκτός από αυτά που ξεκινούν με μια υπογράμμιση (ιδιωτικοί ορισμοί)
Importing everything with the asterisk (*) symbol is not a good programming practice. This can lead to duplicate definitions for an identifier. It also hampers the readability of our code.
Python Module Search Path
While importing a module, Python looks at several places. Interpreter first looks for a built-in module. Then(if built-in module not found), Python looks into a list of directories defined in sys.path
. The search is in this order.
- The current directory.
PYTHONPATH
(an environment variable with a list of directories).- The installation-dependent default directory.
>>> import sys >>> sys.path ('', 'C:\Python33\Lib\idlelib', 'C:\Windows\system32\python33.zip', 'C:\Python33\DLLs', 'C:\Python33\lib', 'C:\Python33', 'C:\Python33\lib\site-packages')
We can add and modify this list to add our own path.
Reloading a module
The Python interpreter imports a module only once during a session. This makes things more efficient. Here is an example to show how this works.
Suppose we have the following code in a module named my_module
.
# This module shows the effect of # multiple imports and reload print("This code got executed")
Now we see the effect of multiple imports.
>>> import my_module This code got executed >>> import my_module >>> import my_module
We can see that our code got executed only once. This goes to say that our module was imported only once.
Now if our module changed during the course of the program, we would have to reload it.One way to do this is to restart the interpreter. But this does not help much.
Python provides a more efficient way of doing this. We can use the reload()
function inside the imp
module to reload a module. We can do it in the following ways:
>>> import imp >>> import my_module This code got executed >>> import my_module >>> imp.reload(my_module) This code got executed
The dir() built-in function
Μπορούμε να χρησιμοποιήσουμε τη dir()
συνάρτηση για να βρούμε ονόματα που ορίζονται μέσα σε μια ενότητα.
Για παράδειγμα, έχουμε ορίσει μια συνάρτηση add()
στην ενότητα example
που είχαμε στην αρχή.
Μπορούμε να χρησιμοποιήσουμε dir
στη example
μονάδα με τον ακόλουθο τρόπο:
>>> dir(example) ('__builtins__', '__cached__', '__doc__', '__file__', '__initializing__', '__loader__', '__name__', '__package__', 'add')
Εδώ, μπορούμε να δούμε μια ταξινομημένη λίστα ονομάτων (μαζί με add
). Όλα τα άλλα ονόματα που ξεκινούν με μια υπογράμμιση είναι τα προεπιλεγμένα χαρακτηριστικά Python που σχετίζονται με τη λειτουργική μονάδα (όχι καθορισμένη από τον χρήστη)
Για παράδειγμα, το __name__
χαρακτηριστικό περιέχει το όνομα της λειτουργικής μονάδας.
>>> import example >>> example.__name__ 'example'
Όλα τα ονόματα που ορίζονται στον τρέχοντα χώρο ονομάτων μας μπορούν να βρεθούν χρησιμοποιώντας τη dir()
συνάρτηση χωρίς ορίσματα.
>>> a = 1 >>> b = "hello" >>> import math >>> dir() ('__builtins__', '__doc__', '__name__', 'a', 'b', 'math', 'pyscripter')