Module Python: învățați să creați și să importați module personalizate și încorporate

Î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.pyse 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 importcuvâ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 exampledirect în tabelul de simboluri curent. Importă doar numele modulului exampleacolo.

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 importinstrucț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 mathmodulul ca m. Acest lucru ne poate economisi timp de tastare în unele cazuri.

Rețineți că numele mathnu este recunoscut în domeniul nostru de aplicare. Prin urmare, math.pieste nevalid și m.pieste 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 piatributul din mathmodul.

Î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 examplecare o aveam la început.

Putem folosi dirîn examplemodul î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')

Articole interesante...