În acest articol, veți învăța să creați și să importați module personalizate în Python. De asemenea, veți găsi diferite tehnici pentru a importa și utiliza module personalizate și încorporate în Python.
Video: module Python
Ce sunt modulele în Python?
Modulele se referă la un fișier care conține instrucțiuni și definiții Python.
Un fișier care conține cod Python, de exemplu:, example.py
se numește modul, iar numele modulului său ar fi example
.
Folosim module pentru a împărți programele mari în fișiere mici, gestionabile și organizate. În plus, modulele asigură reutilizarea codului.
Putem defini funcțiile noastre cele mai utilizate într-un modul și să îl importăm, în loc să le copiem definițiile în diferite programe.
Să creăm un modul. Tastați următoarele și salvați - l ca example.py
.
# Python Module example def add(a, b): """This program adds two numbers and return the result""" result = a + b return result
Aici, am definit o funcție add()
în interiorul unui modul numit example
. Funcția ia două numere și le returnează suma.
Cum să importați module în Python?
Putem importa definițiile din interiorul unui modul în alt modul sau în interpretul interactiv din Python.
Folosim import
cuvântul cheie pentru a face acest lucru. Pentru a importa modulul nostru definit anterior example
, tastăm următoarele în promptul Python.
>>> import example
Aceasta nu importă numele funcțiilor definite example
direct în tabelul de simboluri curent. Importă doar numele modulului example
acolo.
Folosind numele modulului putem accesa funcția folosind .
operatorul punct . De exemplu:
>>> example.add(4,5.5) 9.5
Python are tone de module standard. Puteți consulta lista completă a modulelor standard Python și cazurile lor de utilizare. Aceste fișiere se află în directorul Lib din locația în care ați instalat Python.
Modulele standard pot fi importate în același mod în care importăm modulele definite de utilizator.
Există diferite modalități de a importa module. Acestea sunt enumerate mai jos …
Declarație de import Python
Putem importa un modul folosind import
instrucțiunea și accesa definițiile din interior folosind operatorul punct așa cum este descris mai sus. Iată un exemplu.
# import statement example # to import standard module math import math print("The value of pi is", math.pi)
Când rulați programul, ieșirea va fi:
Valoarea lui pi este 3.141592653589793
Import cu redenumire
Putem importa un modul redenumindu-l după cum urmează:
# import module by renaming it import math as m print("The value of pi is", m.pi)
Am redenumit math
modulul ca m
. Acest lucru ne poate economisi timp de tastare în unele cazuri.
Rețineți că numele math
nu este recunoscut în domeniul nostru de aplicare. Prin urmare, math.pi
este nevalid și m.pi
este implementarea corectă.
Python din … declarație de import
Putem importa nume specifice dintr-un modul fără a importa modulul în ansamblu. Iată un exemplu.
# import only pi from math module from math import pi print("The value of pi is", pi)
Aici, am importat numai pi
atributul din math
modul.
În astfel de cazuri, nu folosim operatorul punct. De asemenea, putem importa mai multe atribute după cum urmează:
>>> from math import pi, e >>> pi 3.141592653589793 >>> e 2.718281828459045
Importați toate numele
Putem importa toate numele (definițiile) dintr-un modul folosind următoarea construcție:
# import all names from the standard module math from math import * print("The value of pi is", pi)
Aici, am importat toate definițiile din modulul matematic. Aceasta include toate numele vizibile în domeniul nostru de aplicare, cu excepția celor care încep cu o subliniere (definiții private).
Importarea tuturor cu simbolul asterisc (*) nu este o practică bună de programare. Acest lucru poate duce la duplicarea definițiilor pentru un identificator. De asemenea, împiedică lizibilitatea codului nostru.
Căi de căutare a modulului Python
În timp ce importă un modul, Python privește mai multe locuri. Interpretul caută mai întâi un modul încorporat. Apoi (dacă modulul încorporat nu este găsit), Python caută o listă de directoare definite în sys.path
. Căutarea se face în această ordine.
- Directorul curent.
PYTHONPATH
(o variabilă de mediu cu o listă de directoare).- Directorul implicit dependent de instalare.
>>> import sys >>> sys.path ('', 'C: \ Python33 \ Lib \ idlelib', 'C: \ Windows \ system32 \ python33.zip', 'C: \ Python33 \ DLL ',' 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
Putem folosi dir()
funcția pentru a afla numele definite în interiorul unui modul.
De exemplu, am definit o funcție add()
în modul pe example
care o aveam la început.
Putem folosi dir
în example
modul în felul următor:
>>> dir(example) ('__builtins__', '__cached__', '__doc__', '__file__', '__initializing__', '__loader__', '__name__', '__package__', 'add')
Aici, putem vedea o listă sortată de nume (împreună cu add
). Toate celelalte nume care încep cu o subliniere sunt atribute Python implicite asociate modulului (nu sunt definite de utilizator).
De exemplu, __name__
atributul conține numele modulului.
>>> import example >>> example.__name__ 'example'
Toate numele definite în spațiul nostru de nume curent pot fi găsite folosind dir()
funcția fără niciun argument.
>>> a = 1 >>> b = "hello" >>> import math >>> dir() ('__builtins__', '__doc__', '__name__', 'a', 'b', 'math', 'pyscripter')