Modul importálása Python példákkal
⚡ Okos összefoglaló
Importálás be Python lehetővé teszi, hogy egy fájl újra felhasználja a másikban definiált változókat, függvényeket és osztályokat. Egy modul egyszerűen egy .py fájl, míg egy csomag a kapcsolódó modulokat egy __init__.py fájllal jelölt könyvtáron belül csoportosítja.

Az alábbi szakaszok ismertetik a modulokat, csomagokat, a különböző importálási stílusokat, valamint az abszolút és relatív importálás működését. Python.
Milyen modulok vannak benne Python?
Egy modul egy fájl, amely tartalmazza Python kód. A kód lehet változók, függvények vagy egy definiált osztály formájában. A fájlnév lesz a modul neve.
Például, ha a fájl neve guru99.py, akkor a modul neve a következő lesz guru99. A modulfunkciókkal a kódot különböző fájlokra bonthatja, ahelyett, hogy mindent egy fájlba írna.
Mi a Python import modul?
Egy fájlt modulnak tekintünk PythonA modul használatához importálnia kell azt a következővel: importál kulcsszó. A fájlban található függvények vagy változók felhasználhatók egy másik fájlban a modul importálásával. Ez a funkció más nyelveken is elérhető, például a TypeScript, JavaForgatókönyv, Java, Rubin stb.
Modul létrehozása és importálása Python?
Most létrehozunk egy modult, és importáljuk egy másik fájlba.
A modul létrehozásának és importálásának folyamata a képernyőképen látható módon:
Kövesd a megadott lépéseket egy modul létrehozásához Python.
A kód teszteléséhez használt mappastruktúra a következő:
modtest/ test.py display.py
Step 1) Hozz létre egy fájlt, és nevezd el test.py-nek.
Step 2) A test.py fájlban hozzon létre egy display_message() függvényt
Def display_message():
return "Welcome to Guru99 Tutorials!"
Step 3) Most hozzon létre egy másik display.py fájlt.
Step 4) A display.py fájlon belül importáld a test.py modulfájlt az alábbiak szerint:
import test
Importálás közben nem kell megemlíteni a test.py fájlt, elég a fájl neve.
Step 5) Ezután meghívhatod a display.py fájlban található test.py fájlból a display_message() függvényt. Ehhez a module_name.function_name függvényt kell használnod.
Például test.display_message().
Import test
print(test.display_message())
Step 6) Amikor a display.py-t futtatod, a következőt kapod: output:
Welcome to Guru99 Tutorials!
Osztály importálása Python
Korábban láttunk egy egyszerű modult egy függvénnyel. Itt létrehozunk egy osztályt, és egy másik fájlban fogunk hivatkozni rá.
A kód teszteléséhez a következő mappaszerkezetet kell használni:
myproj/ Car.py display.py
Hozzon létre egy Car.py nevű fájlt a következő kóddal:
Fájlnév: 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)
A Car.py fájlban a brand_name, model és manu_year attribútumok találhatók. Az osztályon belül definiált függvények a car_details(), get_Car_brand() és get_Car_model().
Használjuk most a Car.py fájlt modulként egy másik, display.py nevű fájlban.
Fájlnév: 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())
output:
BMW Car brand is BMW Car model is Z5 Car manufacture year is 2020 Car brand is BMW Car model is Z5
Tehát a Car modul segítségével elérhetjük a Car.py összes változóját és függvényét.
Használata innen az importálási modulhoz
A modulnak csak egy kis részét importálhatod, azaz csak a szükséges függvényeket és változóneveket a teljes kód importálása helyett.
Ha csak bizonyos dolgokat szeretne importálni, a „from” kulcsszóval importálhatja a kívánt dolgokat.
Tehát a szintaxis az
from module import your function_name , variables,... etc.
A kód teszteléséhez használt mappastruktúra a következő:
modtest/ test.py display.py
A test.py fájlban 2 függvény található, ahogy az ábrán is látható:
Fájlnév: test.py
defdisplay_message(): return "Welcome to Guru99 Tutorials!" def display_message1(): return "All about Python!"
Most a display_message() függvényre van szükségünk. Az importált függvény vagy változó közvetlenül elérhető az alábbiak szerint:
Fájlnév: display.py
from test import display_message print(display_message())
output:
Welcome to Guru99 Tutorials!
Ha most a display_message1() függvényt használod, az egy hibát fog dobni, miszerint a függvény nincs definiálva, ahogy az alább látható:
from test import display_message print(display_message1())
output:
Traceback (most recent call last): File "display.py", line 3, in <module> print(display_message1()) Name Error: name 'display_message1' is not defined
Mindent importál a modulból
Az Importálás lehetővé teszi a teljes modul importálását az import paranccsal, amelyet a modul neve, azaz a fájlnév vagy a használandó könyvtár követ.
Syntax:
Import module
Vagy használatával
from module import *
A kód teszteléséhez használt mappastruktúra a következő:
modtest/ test.py display.py
A következő kódrészletek találhatók a test.py-n belül
my_name = "Guru99" my_address = "Mumbai" defdisplay_message(): return "Welcome to Guru99 Tutorials!" def display_message1(): return "All about Python!"
Az import modul használata
Ha csak az import modul nevét használjuk, a modulon belüli változókra és függvényekre való hivatkozáshoz a modul nevét kell eléjük tenni.
Példa
Fájlnév: display.py
Import test print(test.display_message()) print(test.display_message1()) print(test.my_name) print(test.my_address)
A test modulnév a test modulban található függvényekre és változókra utal.
output:
Welcome to Guru99 Tutorials! All about Python! Guru99 Mumbai
Az importálás használata *
Lássunk egy példát a használatára import*. használata import*, a függvények és változók közvetlenül elérhetők, amint az az alábbi példában látható:
from test import * print(display_message()) print(display_message1()) print(my_name) print(my_address)
output:
Welcome to Guru99 Tutorials! All about Python! Guru99 Mumbai
A dir( ) függvény
A dir() egy beépített függvény a PythonA dir() visszaadja az összes tulajdonságot és metódust, beleértve az adott objektum beépített tulajdonságait is.
Tehát amikor a dir() függvényt használjuk a modulon, akkor megkapjuk a modulban található változókat és függvényeket.
Íme egy működő példa a dir() függvényre egy modulon. Van egy Car.py nevű osztályunk, importáljuk a Car függvényt, és rendeljük hozzá a dir() függvényhez a kimenet megtekintéséhez.
A kód tesztelésének mappaszerkezete a következő lesz:
test prop/ Car.py test.py
Fájlnév: 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)
Fájlnév: test.py
import Car class_contents = dir(Car) print(class_contents)
A kimenet megadja az osztály nevét és a Car.py-ben meghatározott összes függvényt.
Megpróbálhatja a dir() használatát is egy beépített modulon, amely elérhető PythonPróbáljuk meg ugyanezt a json modult, ahogy az az alábbi példában látható. Megjeleníti az összes elérhető tulajdonságot és metódust a json modult.
Import json
json_details = dir(json)
print(json_details)
output:
['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']
Csomagok
A csomag egy könyvtár, amelyben minden modul definiálva van. Ahhoz, hogy a Python Ha az értelmező csomagként kezeli, a könyvtáradban lennie kell az __init__.py fájlnak. A __init__.py teszi a könyvtárat csomaggá. Íme a csomag elrendezése, amin dolgozni fogunk.
A csomag neve a csomagomA csomaggal való munka megkezdéséhez hozz létre egy mypackage/ nevű könyvtárat. A könyvtáron belül hozz létre egy üres fájlt __init__.py néven. Hozz létre további 3 fájlt: module1.py, module2.py és module3.py, és definiáld a függvényeket a képernyőképen látható módon. Íme a module1.py, module2.py és module3.py részletei.
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")
Az csomag használatra kész. Most hívd meg a csomagot bármelyik fájlodon belül, ahogy az a test.py fájlban látható:
Itt a mypackage.module1 importálásra kerül, és álnevet kap mód1Hasonlóképpen használhatod a mypackage többi modulját, a module2.py és a module3.py-t is.
import mypackage.module1 as mod1 print(mod1.mod1_func1()) print(mod1.mod1_func2()) print(mod1.mod1_func2())
output:
Welcome to Module1 function1 None Welcome to Module1 function2 None Welcome to Module1 function2 None
Épp most mutattuk be a csomagot egy egyszerű, függvényeket tartalmazó modullal. A projektednek megfelelően olyan csomagokat is létrehozhatsz, amelyek alcsomagokat tartalmaznak, azaz olyan almappákat, amelyekben definiált osztályokkal rendelkező modulok vannak.
Python Modul keresési útvonala
Végrehajtás közben, amikor Python átjön import modul neve, az értelmező megpróbálja megtalálni a modult. A beépített modullistában, majd a sys.path fájlban definiált összes könyvtárban keresi.
Összefoglalva, a tolmács a következő keresést hajtja végre a modul megkereséséhez:
- Az aktuális könyvtárban.
- A beépített modulok listájában.
- A sys.path könyvtárakon belül.
A sys.path részleteit a sys modul importálásával és a sys.path kiíratásával tudhatod meg. Ez a könyvtárak listáját adja vissza, az alábbiak szerint:
importsys
print(sys.path)
output:
['Python Latest\\task2', 'Users\\AppData\\Local\\Programs\\Python\ \Python37\\python37.zip', 'Users\\AppData\\Local\\Programs\\Python\\P ython37\\DLLs']
Módosíthatja az elérési utat és megtarthatja a könyvtárakat az igényei szerint.
Modulálnév használata az importálás során
A modul nevét rövidebb formára is alakíthatod egy alias név megadásával. Az alias a következővel hozható létre: as kulcsszó.
Syntax:
import filename as alias name
A kód tesztelésének mappaszerkezete a következő lesz:
Mod test/ test.py display.py
A következő a test.py-n belüli kód
my_name = "Guru99" my_address = "Mumbai" def display_message(): return "Welcome to Guru99 Tutorials!" def display_message1(): return "All about Python!"
Most egy aliast fogunk használni a test.py-hoz a display.py-ban
Import test as t print(t.display_message()) print(t.display_message1()) print(t.my_name) print(t.my_address)
A test modulhoz használt álnév a t. Tehát a test.py függvényeire és változóira a t álnév használatával lehet hivatkozni.
output:
Welcome to Guru99 Tutorials! All about Python! Guru99 Mumbai
Abszolút és relatív import Python
Most már tudja, hogyan importálhat egy fájlt modulként egy másik fájlba. Lássuk most, hogyan kezeljük a mappákban elérhető fájlokat. A mappákban lévő fájlok abszolút vagy relatív importálással importálhatók.
Vegye figyelembe, hogy rendelkezik a projektmappa szerkezetével, az alábbiak szerint:
A gyökérmappa a myproject/. Két almappája van: a package1 és a package2.
A package1 mappa két modult tartalmaz, a module1.py-t és a module2.py-t.
A csomag2 mappában egy myclass.py osztály, egy alcsomag subpkg module3.py és utolsó module4.py található.
- A module1.py fájlban található egy myfunc1 nevű függvény.
- A module2.py fájlban található egy myfunc2 nevű függvény.
- A module3.py fájlban található egy myfunc3 nevű függvény.
- A module4.py fájlban található egy myfunc4 nevű függvény.
Az abszolút import használata
Abszolút importáláshoz a modul teljes elérési útját hozzá kell adni a projekt gyökérmappájából.
Most nézzük meg, hogyan használhatjuk az abszolút importálást az egyes modulokban található függvényekre való hivatkozáshoz.
A myfunc1 függvénnyel való munkához az alábbiak szerint kell importálnia:
from package1.module1 import myfunc1 or from package1 import module1 module1.myfunc1()
A myfunc3 függvénnyel való munkához az alábbiak szerint kell importálnia:
from package1.subpkg.module3 import myfunc3 or from package1.subpkg import module3 module3.myfunc3()
Az abszolút import használatának előnyei és hátrányai
Íme az abszolút import használatának előnyei:
- Könnyűvé válik tracTegye vissza a modulokat a kód ellenőrzéséhez.
- Könnyen használható és nagyon egyszerű.
- Ha a projektet egy másik útvonalra helyezik át, az importálások továbbra is változatlanok maradnak.
Az abszolút import használatának hátrányai
Az abszolút import használatának hátrányai a következők:
- Az importálási útvonal nagyon hosszú lehet, ha a modulok egymásba vannak ágyazva, és a modulnevek hosszúak.
Relatív import használata
Figyelembe véve a fent említett mappastruktúrát, meglátjuk, hogyan importálhatjuk ugyanazt relatív importálás segítségével.
Relatív importálás esetén az importálandó modul az aktuális helyhez képest relatív, azaz ahhoz a helyhez képest, ahol az import utasítás található.
Szintaxis
A relatív importálásnál egy pontot (.) kell hozzáadnia a modul neve elé, amikor a segítségével importál ból ből.
Két pont (..) áll a modul neve előtt, ha a modul egy szinttel feljebb van az aktuális helyhez képest.
A fent említett mappaszerkezeti ábrára hivatkozva a következő modulokat és azok funkcióit láthatjuk, amelyekre hivatkoznunk kell.
- A module1.py fájlban található egy myfunc1 nevű függvény.
- A module2.py fájlban található egy myfunc2 nevű függvény.
- A module3.py fájlban található egy myfunc3 nevű függvény.
- A module4.py fájlban található egy myfunc4 nevű függvény.
A myfunc1 függvénnyel való munkához az alábbiak szerint kell importálnia:
from .module1 import myfunc1
A myfunc3 függvénnyel való munkához az alábbiak szerint kell importálnia:
from .subpkg.module3 import myfunc3
A relatív import előnyei
- A relatív importtal könnyű dolgozni.
- A jelenlegi helyről az import az abszolút importhoz képest lerövidíthető.
A relatív import hátrányai
- Relatív import felhasználásával nehéz tracvissza, ahol a kód található.



