Impordi moodul sisse Python koos näidetega
⚡ Nutikas kokkuvõte
Import sisse Python võimaldab ühel failil teises failis määratletud muutujaid, funktsioone ja klasse taaskasutada. Moodul on lihtsalt .py-fail, samas kui pakett koondab seotud moodulid kataloogi, mida tähistab __init__.py-fail.

Allolevad jaotised selgitavad mooduleid, pakette, erinevaid impordistiile ning seda, kuidas absoluutne ja suhteline importimine töötab. Python.
Mis moodulid sisaldavad Python?
Moodul on fail, millel on Python kood. Kood võib olla muutujate, funktsioonide või defineeritud klassi kujul. Failinimest saab mooduli nimi.
Näiteks kui teie failinimi on guru99.py, on mooduli nimi guru99. Mooduli funktsioonide abil saate oma koodi jagada erinevateks failideks, selle asemel, et kirjutada kõike ühte faili.
Mis on Python impordi moodul?
Faili peetakse mooduliks PythonMooduli kasutamiseks peate selle importima, kasutades import märksõna. Failis olevaid funktsioone või muutujaid saab mooduli importimise teel kasutada teises failis. See funktsioon on saadaval ka teistes keeltes, näiteks TypeScript, Javaskript, Java, Rubiin jne.
Kuidas moodulit luua ja importida Python?
Nüüd loome mooduli ja impordime selle teise faili.
Siin on mooduli loomise ja importimise voog, nagu on näidatud ekraanipildil:
Mooduli loomiseks järgige antud samme Python.
Koodi testimiseks kasutatav kaustastruktuur on järgmine:
modtest/ test.py display.py
Step 1) Loo fail ja pane sellele nimeks test.py
Step 2) Looge failis test.py funktsioon nimega display_message()
Def display_message():
return "Welcome to Guru99 Tutorials!"
Step 3) Nüüd looge uus fail display.py.
Step 4) Importige display.py faili mooduli test.py fail, nagu allpool näidatud:
import test
Importimisel ei pea te test.py faili mainima, vaid piisab faili nimest.
Step 5) Seejärel saate kutsuda funktsiooni display_message() failist test.py faili display.py seest. Peate kasutama mooduli_nimi.funktsiooni_nimi.
Näiteks test.display_message().
Import test
print(test.display_message())
Step 6) Kui käivitate display.py, saate järgmise tulemuse Väljund:
Welcome to Guru99 Tutorials!
Klassi importimine Python
Varem nägime lihtsat funktsiooniga moodulit. Siin loome klassi ja viitame sellele teises failis.
Koodi testimiseks mõeldud kaustastruktuur on järgmine:
myproj/ Car.py display.py
Looge fail nimega Car.py järgmise koodiga:
Faili nimi: 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)
Failis Car.py on atribuudid brand_name, model ja manu_year. Klassi sees defineeritud funktsioonid on car_details(), get_Car_brand() ja get_Car_model().
Kasutagem nüüd faili Car.py moodulina teises failis nimega display.py.
Failinimi: 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())
Väljund:
BMW Car brand is BMW Car model is Z5 Car manufacture year is 2020 Car brand is BMW Car model is Z5
Seega saame Car mooduli abil ligi kõigile Car.py muutujatele ja funktsioonidele.
Impordimooduli kasutamine alates
Saate importida ainult väikese osa moodulist, st ainult vajalikud funktsioonid ja muutujate nimed, selle asemel, et importida kogu kood.
Kui soovite importida ainult teatud asju, saate soovitud andmete importimiseks kasutada märksõna „from”.
Nii et süntaks on
from module import your function_name , variables,... etc.
Koodi testimiseks kasutatav kaustastruktuur on järgmine:
modtest/ test.py display.py
Failis test.py on kaks funktsiooni, nagu näidatud:
Failinimi: test.py
defdisplay_message(): return "Welcome to Guru99 Tutorials!" def display_message1(): return "All about Python!"
Nüüd vajate funktsiooni display_message(). Imporditavale funktsioonile või muutujale pääseb otse ligi allpool näidatud viisil:
Faili nimi: display.py
from test import display_message print(display_message())
Väljund:
Welcome to Guru99 Tutorials!
Kui nüüd kasutada funktsiooni display_message1(), siis kuvatakse allpool näidatud viisil tõrge, mis teatab, et funktsioon pole defineeritud:
from test import display_message print(display_message1())
Väljund:
Traceback (most recent call last): File "display.py", line 3, in <module> print(display_message1()) Name Error: name 'display_message1' is not defined
Kõik importimine moodulist
Importimine võimaldab teil importida kogu mooduli, kasutades importi, millele järgneb mooduli nimi, st failinimi või kasutatav teek.
süntaksit:
Import module
Või kasutades
from module import *
Koodi testimiseks kasutatav kaustastruktuur on järgmine:
modtest/ test.py display.py
Järgnevalt on toodud test.py koodi üksikasjad
my_name = "Guru99" my_address = "Mumbai" defdisplay_message(): return "Welcome to Guru99 Tutorials!" def display_message1(): return "All about Python!"
Impordimooduli kasutamine
Kasutades ainult impordimooduli nime, tuleb moodulisisestele muutujatele ja funktsioonidele viitamiseks neile ette lisada mooduli nimi.
Näide
Failinimi: display.py
Import test print(test.display_message()) print(test.display_message1()) print(test.my_name) print(test.my_address)
Mooduli nimega test viidatakse moodulis olevatele funktsioonidele ja muutujatele.
Väljund:
Welcome to Guru99 Tutorials! All about Python! Guru99 Mumbai
Impordi kasutamine *
Vaatame näidet kasutamise kohta import *. Kasutades import *, on funktsioonidele ja muutujatele otse juurdepääs, nagu on näidatud allolevas näites:
from test import * print(display_message()) print(display_message1()) print(my_name) print(my_address)
Väljund:
Welcome to Guru99 Tutorials! All about Python! Guru99 Mumbai
Funktsioon dir( ).
dir() on sisseehitatud funktsioon PythonFunktsioon dir() tagastab kõik omadused ja meetodid, sealhulgas antud objekti sisseehitatud omadused.
Seega, kui moodulil kasutatakse funktsiooni dir(), annab see teile moodulis olevad muutujad ja funktsioonid.
Siin on näide funktsiooni dir() kasutamisest moodulil. Meil on klass nimega Car.py, impordime klassi Car ja määrame selle funktsioonile dir(), et näha väljundit.
Koodi testimise kaustastruktuur on järgmine:
test prop/ Car.py test.py
Faili nimi: 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)
Faili nimi: test.py
import Car class_contents = dir(Car) print(class_contents)
Väljund annab meile klassi nime ja kõik Car.py-s määratletud funktsioonid.
Samuti võite proovida kasutada dir() sisseehitatud moodulis, mis on saadaval PythonProovime sama ka Json moodulit, nagu on näidatud allolevas näites. See kuvab kõik moodulis saadaolevad omadused ja meetodid. Json moodul.
Import json
json_details = dir(json)
print(json_details)
Väljund:
['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']
Paketid
Pakett on kataloog, mille sees on määratletud kõik moodulid. Et teha a Python Tõlkija käsitleb seda paketina, teie kataloogis peaks olema fail __init__.py. __init__.py muudab kataloogi paketiks. Siin on paketi paigutus, mille kallal me töötama hakkame.
Pakendi nimi on minupakettPaketiga töötamise alustamiseks looge kataloog nimega mypackage/. Kataloogi sisse looge tühi fail nimega __init__.py. Looge veel 3 faili: module1.py, module2.py ja module3.py ning defineerige funktsioonid, nagu ekraanipildil näidatud. Siin on üksikasjad failide moodul1.py, moodul2.py ja moodul3.py kohta.
moodul1.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")
moodul2.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")
moodul3.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")
. pakend on kasutusvalmis. Nüüd kutsuge paketti mis tahes oma faili sees, nagu allpool test.py-s näidatud:
Siin imporditakse mypackage.module1 ja sellele antakse varjunimi kui režiim1Samamoodi saate kasutada ka teisi mooduleid module2.py ja module3.py paketist mypackage.
import mypackage.module1 as mod1 print(mod1.mod1_func1()) print(mod1.mod1_func2()) print(mod1.mod1_func2())
Väljund:
Welcome to Module1 function1 None Welcome to Module1 function2 None Welcome to Module1 function2 None
Me just demonstreerisime paketti lihtsa mooduliga, mille sees on funktsioonid. Vastavalt teie projektile saate luua ka pakette, millel on alampaketid, st alamkaustad, millel on moodulid ja määratletud klassid.
Python Mooduli otsingutee
Täitmise ajal, kui Python tuleb vastu impordi mooduli nimi, proovib interpreter moodulit leida. See otsib moodulit sisseehitatud moodulite loendist ja seejärel kõigist sys.path sees määratletud kataloogidest.
Kokkuvõtteks teeb tõlk mooduli leidmiseks järgmise otsingu:
- Teie praeguses kataloogis.
- Sisseehitatud moodulite loendis.
- sys.path kataloogide sees.
sys.path üksikasjade saamiseks importige sys moodul ja printige sys.path. See annab teile allpool näidatud kataloogide loendi:
importsys
print(sys.path)
Väljund:
['Python Latest\\task2', 'Users\\AppData\\Local\\Programs\\Python\ \Python37\\python37.zip', 'Users\\AppData\\Local\\Programs\\Python\\P ython37\\DLLs']
Samuti saate muuta teed ja hoida katalooge vastavalt oma vajadustele.
Mooduli aliase kasutamine importimisel
Mooduli nime saab lühemaks muuta ka aliase abil. Aliase saab luua käsuga as märksõna.
süntaksit:
import filename as alias name
Koodi testimise kaustastruktuur on järgmine:
Mod test/ test.py display.py
Järgmine on test.py kood
my_name = "Guru99" my_address = "Mumbai" def display_message(): return "Welcome to Guru99 Tutorials!" def display_message1(): return "All about Python!"
Nüüd kasutame test.py jaoks aliast failis display.py
Import test as t print(t.display_message()) print(t.display_message1()) print(t.my_name) print(t.my_address)
Testimooduli alias on t. Seega saab test.py funktsioonidele ja muutujatele viidata aliase t abil.
Väljund:
Welcome to Guru99 Tutorials! All about Python! Guru99 Mumbai
Absoluutne ja suhteline import Python
Nüüd teate, kuidas importida faili teise faili moodulina. Vaatame nüüd, kuidas hallata kaustades saadaolevaid faile. Kaustades olevaid faile saab importida kas absoluutse või suhtelise impordi abil.
Arvestage, et teil on projekti kausta struktuur, nagu allpool näidatud:
Juurkaust on myproject/. Sellel on kaks alamkausta: package1 ja package2.
Kaustas package1 on kaks moodulit: moodul1.py ja moodul2.py.
Kaustapaketil2 on üks klass myclass.py, alampaketi alampakett koos module3.py ja viimane module4.py.
- Failis module1.py on funktsioon nimega myfunc1.
- Failis module2.py on funktsioon nimega myfunc2.
- Failis module3.py on funktsioon nimega myfunc3.
- Failis module4.py on funktsioon nimega myfunc4.
Absoluutse impordi kasutamine
Absoluutse impordi jaoks peate lisama kogu mooduli tee otse projekti juurkaustast.
Vaatame nüüd, kuidas kasutada absoluutset importi, et viidata igas moodulis olevatele funktsioonidele.
Funktsiooniga myfunc1 töötamiseks peate selle importima järgmiselt:
from package1.module1 import myfunc1 or from package1 import module1 module1.myfunc1()
Funktsiooniga myfunc3 töötamiseks peate selle importima järgmiselt:
from package1.subpkg.module3 import myfunc3 or from package1.subpkg import module3 module3.myfunc3()
Absoluutse impordi kasutamise eelised ja puudused
Siin on absoluutse impordi kasutamise eelised:
- See muutub lihtsaks tracPange moodulid koodi kontrollimiseks tagasi.
- Lihtne kasutada ja väga otsekohene.
- Kui projekt teisaldatakse teisele teele, jäävad imporditud andmed samaks.
Absoluutse impordi kasutamise puudused
Absoluutsete impordiväärtuste kasutamise puudused on järgmised:
- Imporditee võib minna väga pikaks, kui moodulid on pesastatud ja moodulite nimed on pikad.
Suhtelise impordi kasutamine
Arvestades eespool mainitud kaustastruktuuri, näeme, kuidas seda importida suhtelise impordi abil.
Suhtelise impordi korral on imporditav moodul suhteline praeguse asukoha suhtes, st asukoha suhtes, kus impordilause asub.
Süntaks
Suhtelises impordis tuleb kasutades importimisel lisada mooduli nime ette punkt (.). Rohkem kui.
Kui moodul asub praegusest asukohast ühe taseme võrra kõrgemal, on mooduli nime ees kaks punkti (..).
Viidates ülalmainitud kaustastruktuuri joonisele, on meil järgmised moodulid koos nende funktsioonidega, millele peame viitama.
- Failis module1.py on funktsioon nimega myfunc1.
- Failis module2.py on funktsioon nimega myfunc2.
- Failis module3.py on funktsioon nimega myfunc3.
- Failis module4.py on funktsioon nimega myfunc4.
Funktsiooniga myfunc1 töötamiseks peate selle importima järgmiselt:
from .module1 import myfunc1
Funktsiooniga myfunc3 töötamiseks peate selle importima järgmiselt:
from .subpkg.module3 import myfunc3
Suhtelise impordi eelised
- Suhtelise impordiga on lihtne töötada.
- Praegusest asukohast saab importi lühendada absoluutimpordiga võrreldes.
Suhtelise impordi puudused
- Suhtelise impordi abil on keeruline tractagasi sinna, kus kood asub.



