Importă modul în Python cu Exemple
⚡ Rezumat inteligent
Import în Python permite unui fișier să reutilizeze variabilele, funcțiile și clasele definite în altul. Un modul este pur și simplu un fișier .py, în timp ce un pachet grupează modulele corelate într-un director marcat de un fișier __init__.py.

Secțiunile de mai jos explică modulele, pachetele, diferitele stiluri de import și cum funcționează importurile absolute și relative în Python.
În ce sunt modulele Python?
Un modul este un fișier cu Python cod. Codul poate fi sub formă de variabile, funcții sau o clasă definită. Numele fișierului devine numele modulului.
De exemplu, dacă numele fișierului dvs. este guru99.py, numele modulului va fi guru99. Cu funcționalitatea modulului, vă puteți împărți codul în fișiere diferite în loc să scrieți totul într-un singur fișier.
Care este Python import modul?
Un fișier este considerat un modul în PythonPentru a utiliza modulul, trebuie să îl importați folosind import cuvânt cheie. Funcțiile sau variabilele prezente în fișier pot fi utilizate într-un alt fișier prin importul modulului. Această funcționalitate este disponibilă și în alte limbaje de programare, cum ar fi TypeScript, Javascenariu, Java, Ruby etc.
Cum să creați și să importați un modul în Python?
Acum vom crea un modul și îl vom importa într-un alt fișier.
Iată fluxul de creare și importare a modulului, așa cum se arată în captură de ecran:
Urmați pașii dați pentru a crea un modul în Python.
Structura folderului folosită pentru a testa codul este următoarea:
modtest/ test.py display.py
Pas 1) Creați un fișier și denumiți-l test.py
Pas 2) În interiorul test.py creați o funcție numită display_message()
Def display_message():
return "Welcome to Guru99 Tutorials!"
Pas 3) Acum creați un alt fișier display.py.
Pas 4) În interiorul fișierului display.py importați fișierul modulului test.py, așa cum se arată mai jos:
import test
În timpul importului, nu trebuie să menționați fișierul test.py, ci doar numele fișierului.
Pas 5) Apoi poți apela funcția display_message() din test.py în interiorul display.py. Trebuie să folosești module_name.function_name.
De exemplu test.display_message().
Import test
print(test.display_message())
Pas 6) Când executați display.py, veți obține următoarele ieșire:
Welcome to Guru99 Tutorials!
Importul unei clase în Python
Anterior, am văzut un modul simplu cu o funcție. Aici vom crea o clasă și vom face referire la clasă în interiorul unui alt fișier.
Structura de foldere pentru testarea codului este următoarea:
myproj/ Car.py display.py
Creați un fișier numit Car.py cu următorul cod:
Nume fișier: 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)
În fișierul Car.py, există atributele brand_name, model și manu_year. Funcțiile definite în cadrul clasei sunt car_details(), get_Car_brand(), get_Car_model().
Să folosim acum fișierul Car.py ca modul într-un alt fișier numit display.py.
Nume fișier: 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())
ieșire:
BMW Car brand is BMW Car model is Z5 Car manufacture year is 2020 Car brand is BMW Car model is Z5
Deci putem accesa toate variabilele și funcțiile din Car.py folosind modulul Car.
Utilizarea de la pentru a importa modulul
Puteți importa doar o mică parte a modulului, adică doar funcțiile și numele variabilelor necesare din modul, în loc să importați întregul cod.
Când doriți să fie importate doar anumite lucruri, puteți utiliza cuvântul cheie „from” pentru a importa ceea ce doriți.
Deci sintaxa este
from module import your function_name , variables,... etc.
Structura folderului folosită pentru a testa codul este următoarea:
modtest/ test.py display.py
În test.py există 2 funcții, așa cum se arată:
Nume fișier: test.py
defdisplay_message(): return "Welcome to Guru99 Tutorials!" def display_message1(): return "All about Python!"
Acum doriți funcția display_message(). Funcția sau variabila pe care o importați poate fi accesată direct, așa cum se arată mai jos:
Nume fișier: display.py
from test import display_message print(display_message())
ieșire:
Welcome to Guru99 Tutorials!
Acum, dacă se întâmplă să utilizați funcția display_message1(), aceasta va genera o eroare care indică faptul că funcția nu este definită așa cum se arată mai jos:
from test import display_message print(display_message1())
ieșire:
Traceback (most recent call last): File "display.py", line 3, in <module> print(display_message1()) Name Error: name 'display_message1' is not defined
Se importă totul din modul
Importul vă permite să importați întregul modul utilizând comanda „import” urmată de numele modulului, adică numele fișierului sau al bibliotecii care va fi utilizată.
Sintaxă:
Import module
Sau prin utilizarea
from module import *
Structura folderului folosită pentru a testa codul este următoarea:
modtest/ test.py display.py
Mai jos sunt detaliile codului din interiorul test.py
my_name = "Guru99" my_address = "Mumbai" defdisplay_message(): return "Welcome to Guru99 Tutorials!" def display_message1(): return "All about Python!"
Folosind modulul de import
Folosind doar numele modulului de import, pentru a face referire la variabilele și funcțiile din interiorul modulului, trebuie să le prefixați cu numele modulului.
Exemplu
Nume fișier: display.py
Import test print(test.display_message()) print(test.display_message1()) print(test.my_name) print(test.my_address)
Numele modulului test este folosit pentru a face referire la funcțiile și variabilele din interiorul modulului test.
ieșire:
Welcome to Guru99 Tutorials! All about Python! Guru99 Mumbai
Folosind import *
Să vedem un exemplu de utilizare import *. Utilizarea import *, funcțiile și variabilele sunt direct accesibile, așa cum se arată în exemplul de mai jos:
from test import * print(display_message()) print(display_message1()) print(my_name) print(my_address)
ieșire:
Welcome to Guru99 Tutorials! All about Python! Guru99 Mumbai
Funcția dir( ).
Funcția dir() este o funcție încorporată în PythonFuncția dir() returnează toate proprietățile și metodele, inclusiv proprietățile predefinite ale obiectului dat.
Deci, atunci când dir() este utilizată pe modul, aceasta vă va oferi variabilele și funcțiile prezente în interiorul modulului.
Iată un exemplu funcțional de dir() pe un modul. Avem o clasă numită Car.py, permiteți-ne să importăm Car și să o atribuim funcției dir() pentru a vedea rezultatul.
Structura folderului pentru a testa codul va fi următoarea:
test prop/ Car.py test.py
Nume fișier: 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)
Nume fișier: test.py
import Car class_contents = dir(Car) print(class_contents)
Ieșirea ne oferă numele clasei și toate funcțiile definite în Car.py.
De asemenea, puteți încerca să utilizați dir() pe un modul încorporat disponibil în PythonSă încercăm același lucru și pe JSON modulul așa cum se arată în exemplul de mai jos. Acesta va afișa toate proprietățile și metodele disponibile în JSON modul.
Import json
json_details = dir(json)
print(json_details)
ieșire:
['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']
Pachete
Un pachet este un director cu toate modulele definite în el. A face o Python Interpretorul îl tratează ca pe un pachet, directorul dumneavoastră ar trebui să conțină fișierul __init__.py. Fișierul __init__.py transformă directorul într-un pachet. Iată aspectul pachetului la care vom lucra.
Numele pachetului este pachetul meuPentru a începe să lucrați cu pachetul, creați un director numit mypackage/. În interiorul directorului, creați un fișier gol numit __init__.py. Creați încă 3 fișiere module1.py, module2.py și module3.py și definiți funcțiile așa cum se arată în captura de ecran. Iată detaliile pentru module1.py, module2.py și 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")
pachet este gata de utilizare. Acum apelați pachetul din oricare dintre fișierele dvs., așa cum se arată mai jos în test.py:
Aici, mypackage.module1 este importat și i se primește un nume de alias ca mod1În mod similar, puteți utiliza celelalte module module2.py și module3.py din mypackage.
import mypackage.module1 as mod1 print(mod1.mod1_func1()) print(mod1.mod1_func2()) print(mod1.mod1_func2())
ieșire:
Welcome to Module1 function1 None Welcome to Module1 function2 None Welcome to Module1 function2 None
Tocmai am demonstrat pachetul cu un modul simplu cu funcții în interiorul său. Ca și în proiectul dvs., puteți crea și pachete care au sub-pachete, adică sub-foldere care au module cu clase definite.
Python Calea de căutare a modulului
În timpul execuției, când Python vine peste nume de modul de import, interpretorul încearcă să localizeze modulul. Caută modulul în lista de module încorporată și apoi în toate directoarele definite în sys.path.
Pentru a rezuma, interpretul face următoarea căutare pentru a localiza modulul:
- În directorul dvs. curent.
- În lista de module încorporate.
- În directoarele sys.path.
Puteți obține detaliile fișierului sys.path importând modulul sys și afișând fișierul sys.path. Acesta vă va oferi lista de directoare, așa cum se arată mai jos:
importsys
print(sys.path)
ieșire:
['Python Latest\\task2', 'Users\\AppData\\Local\\Programs\\Python\ \Python37\\python37.zip', 'Users\\AppData\\Local\\Programs\\Python\\P ython37\\DLLs']
De asemenea, puteți modifica calea și păstra directoarele conform cerințelor dvs.
Folosind alias de modul în import
De asemenea, puteți converti numele modulului într-o formă mai scurtă, dându-i un nume alias. Aliasul poate fi creat folosind as cuvinte cheie.
Sintaxă:
import filename as alias name
Structura folderului pentru a testa codul va fi următoarea:
Mod test/ test.py display.py
Urmează codul din interiorul test.py
my_name = "Guru99" my_address = "Mumbai" def display_message(): return "Welcome to Guru99 Tutorials!" def display_message1(): return "All about Python!"
Acum vom folosi un alias pentru test.py în display.py
Import test as t print(t.display_message()) print(t.display_message1()) print(t.my_name) print(t.my_address)
Aliasul utilizat pentru modulul de test este t. Deci, funcțiile și variabilele din test.py pot fi accesate folosind aliasul t.
ieșire:
Welcome to Guru99 Tutorials! All about Python! Guru99 Mumbai
Importurile absolute și relative în Python
Acum știți cum să importați un fișier ca modul în interiorul altui fișier. Să vedem acum cum să gestionăm fișierele disponibile în foldere. Fișierele din foldere pot fi importate fie utilizând importuri absolute, fie relative.
Luați în considerare că aveți structura folderului de proiect, așa cum se arată mai jos:
Folderul rădăcină este myproject/. Are două subfoldere, package1 și package2.
Dosarul package1 are două module, module1.py și module2.py.
Dosarul package2 are o clasă myclass.py, un sub-pachet subpkg cu module3.py și ultimul module4.py.
- În module1.py, există o funcție numită myfunc1.
- În module2.py, există o funcție numită myfunc2.
- În module3.py, există o funcție numită myfunc3.
- În module4.py, există o funcție numită myfunc4.
Utilizarea importurilor absolute
Pentru importuri absolute, trebuie să adăugați întreaga cale a modulului direct din folderul rădăcină al proiectului.
Să vedem acum cum putem utiliza importurile absolute pentru a face referire la funcțiile prezente în fiecare dintre module.
Pentru a lucra cu funcția myfunc1, va trebui să o importați după cum urmează:
from package1.module1 import myfunc1 or from package1 import module1 module1.myfunc1()
Pentru a lucra cu funcția myfunc3, va trebui să o importați după cum urmează:
from package1.subpkg.module3 import myfunc3 or from package1.subpkg import module3 module3.myfunc3()
Avantajele și dezavantajele utilizării importurilor absolute
Iată avantajele utilizării importurilor absolute:
- Devine ușor să tracRetrageți modulele pentru verificarea codului.
- Usor de folosit si foarte simplu.
- Dacă proiectul este mutat pe o altă cale, importurile vor rămâne aceleași.
Dezavantajele utilizării importurilor absolute
Iată dezavantajele utilizării importurilor absolute:
- Calea de import poate deveni foarte lungă în cazul în care modulele sunt imbricate și numele modulelor sunt lungi.
Utilizarea importurilor relative
Având în vedere aceeași structură de foldere menționată mai sus, vom vedea cum să o importăm folosind importuri relative.
Într-un import relativ, modulul care urmează să fie importat este relativ față de locația curentă, adică locația în care este prezentă instrucțiunea de import.
Sintaxă
În importurile relative, trebuie să adăugați un punct (.) înainte de numele modulului atunci când importați folosind de la.
Vor fi două puncte (..) înaintea numelui modulului dacă modulul este cu un nivel mai sus față de locația curentă.
Referindu-ne la figura cu structura de foldere menționată mai sus, avem următoarele module cu funcțiile lor, la care trebuie să ne referim.
- În module1.py, există o funcție numită myfunc1.
- În module2.py, există o funcție numită myfunc2.
- În module3.py, există o funcție numită myfunc3.
- În module4.py, există o funcție numită myfunc4.
Pentru a lucra cu funcția myfunc1, va trebui să o importați după cum urmează:
from .module1 import myfunc1
Pentru a lucra cu funcția myfunc3, va trebui să o importați după cum urmează:
from .subpkg.module3 import myfunc3
Avantajele importurilor relative
- Este ușor să lucrați cu importuri relative.
- Din locația actuală, importurile pot fi scurtate în comparație cu importurile absolute.
Dezavantajele importurilor relative
- Folosind importuri relative, este dificil să tracînapoi acolo unde se află codul.



