Bevezetés
Python az egyik leggyakrabban használt programozási nyelv a világon. A modulok a Python-kód kritikus fontosságú részei. Egy modul egyszerűen egy .py kiterjesztésű fájl a Python 3 kontextusában. Ez azt jelenti, hogy bármely Python-fájlra hivatkozhat modulként.
Ezeket a modulokat az előre elkészített könyvtárból is beszerezheti. Megtekintheti a Python Standard Library oldalt, ha többet szeretne megtudni. Ezek a Python telepítésekor települnek a rendszerére. Más esetekben ezeket a modulokat a Python csomagkezelőjével, a pip segítségével telepítheti. De mi van akkor, ha egyedi modult szeretne létrehozni? Ha ez a helyzet, akkor örömmel fogja tudni, hogy saját modulokat is készíthet Pythonban.
Ebben a részletes útmutatóban ismertetjük azokat a lépéseket, amelyeket követnie kell a modulok írásához és importálásához Python 3-ban.
Előfeltételek
Mielőtt elkezdenénk, meg kell győződnie arról, hogy telepítve van a Python 3, és be van állítva egy programozási környezet. Követheti a Python 3 telepítéséről és a helyi programozási környezet Ubuntu 16.04-en történő beállításáról szóló útmutatónkat a telepítés befejezéséhez, ha még nem állna készen.
Hogyan írjunk modult?
Kezdjük egy modul megírásával. Egy modult pontosan úgy kell megírni, mint bármely más Python-fájlt. Egy tipikus modul függvények, osztályok és változók definícióit tartalmazza. Ezt követően a modult más Python-programokban is használhatja.
A megértés megkönnyítése érdekében vegyünk egy példát. Tegyük fel, hogy szeretnénk létrehozni egy hello.py. Ezt később egy másik fájlba is be fogjuk importálni. A folyamat első lépése egy függvény létrehozása. Ez a függvény a következőt fogja kiírni: Hello, World! így:
|
1 2 3 |
# Függvény definiálása def world(): print("Hello, World!") |
Ezen a ponton a python hello.py parancs futtatása nem ad eredményt. Ez azért van, mert még nem adtunk semmilyen utasítást a programnak. Ahhoz, hogy működjön, importálnunk kell a modult.
Hogyan importáljunk modult?
Ahhoz, hogy importálja a modulját és használhassa a függvényét, létre kell hoznia egy második fájlt ugyanabban a könyvtárban. Ezt az új fájlt így fogjuk nevezni: main_program.py. Azért kell mindkét fájlnak ugyanabban a könyvtárban lennie, mert meg kell mutatnunk a programnak, hol találja a modult. Ez minden olyan új, egyedi modulra vonatkozik, amely nem beépített:
|
1 2 3 4 5 |
# hello modul importálása import hello # Függvény hívása hello.world() |
A függvény meghívásához a pont jelölést használtuk a modulnévvel. Ennek egy másik módja a from...import módszer használata. Itt a függvényt így fogjuk hívni: world() úgy, hogy a modult így importáljuk: from hello import world. Végül futtathatja a parancsot:
|
1 |
python main_program.py |
A parancs a következő kimenetet fogja mutatni:
|
1 2 |
Kimenet: Hello, World! |
Változók hozzáadása egy modulhoz
A következőkben meglátjuk, hogyan adhatunk változókat a modulhoz úgy, hogy definíciókat helyezünk el benne:
|
1 2 3 4 5 6 |
# Függvény definiálása def world(): print("Hello, World!") # Változó definiálása shark = "Sammy" |
Ezt követően a változót a print() függvényben fogja meghívni. A main_program.py fájlon belül fogjuk meghívni:
|
1 2 3 4 5 6 7 |
# hello modul importálása import hello # Függvény hívása hello.world() # Változó kiírása print(hello.shark) |
A program futtatása ezt a kimenetet fogja mutatni:
|
1 2 3 |
Kimenet: Hello, World! Sammy |
Osztály hozzáadása egy modulhoz
Végezetül meglátjuk, hogyan lehet osztályt definiálni a fájljában a modulhoz. Példánkat folytatva egy új, Octopus nevű osztályt fogunk létrehozni a hello.py fájlban. Hozzárendeljük a name és color attribútumokat is. Ezután hozzáadunk egy függvényt, hogy kiírhatóvá tegyük:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
# Függvény definiálása def world(): print("Hello, Világ!") # Változó definiálása shark = "Sammy" # Osztály definiálása class Octopus: def __init__(self, name, color): self.color = color self.name = name def tell_me_about_the_octopus(self): print("Ez a polip " + self.color + ".") print(self.name + " a polip neve.") |
Ezután hozzá kell adnia az osztályt a main_program.py fájl végéhez közel:
|
1 2 3 4 5 6 7 8 9 10 11 12 |
# hello modul importálása import hello # Függvény meghívása hello.world() # Változó kiíratása print(hello.shark) # Osztály meghívása jesse = hello.Octopus("Jesse", "narancssárga") jesse.tell_me_about_the_octopus() |
Az osztályt a hello.Octopus() paranccsal hívhatja meg. Ez megmutatja az Octopus osztály függvényeit és attribútumait a fájl névterében. Így a jesse.tell_me_about_the_octopus() kódot írhatja az utolsó sorba a hello meghívása nélkül. Az osztály egy egyedi attribútumát is meghívhatja a hello használata nélkül. Például egyszerűen futtathatja a jesse.color kódot. Amikor futtatja a programot, a következő kimenet jelenik meg:
|
1 2 3 4 5 |
Kimenet: Hello, Világ! Sammy Ez polip van narancssárga. Jesse van a polip's név. |
Kód megvalósítása modulokkal
Ahol modulokat használhat definíciók megadására, ott kód megvalósítására is használhatja őket. Tegyük fel, hogy meg akarjuk valósítani a world() függvényt. Teljesen újraírjuk a kezdeti hello.py fájlunkat:
|
1 2 3 4 5 6 |
# Függvény definiálása def world(): print("Hello, Világ!") # Függvény meghívása a modulon belül world() |
A main_program.py fájlból az importálási utasításon kívül mindent törlünk, így a következőt hagyva meg:
|
1 2 |
# hello modul importálása import hello |
A főprogramfájl futtatása ezt a kimenetet adja, mivel a program megvalósítja és végrehajtja a world() függvényt:
|
1 2 |
Kimenet: Hello, Világ! |
Hogyan érhetünk el egy modult egy másik könyvtárból?
Most, hogy már tudja, hogyan kell modulokat létrehozni és módosítani, tudnia kell, hogyan érheti el őket egy másik könyvtárból. Ez akkor hasznos, ha egy adott modult egy másik projektben kell használnia. Ennek két módja van, amelyeket alább ismertetünk.
-
Útvonalak hozzáfűzése
Az első módszer a modul útvonalának aktiválása a modult már használó programfájlok segítségével. Sajnos ez nem jelenti azt, hogy a modul az egész rendszerben elérhető lesz. Ezért ez csak ideiglenes megoldásnak tekinthető. Gyakran alkalmazzák a projekt fejlesztési fázisában.
A hozzáfűzési folyamatot a sys modul és más fontos, használni kívánt modulok importálásával kezdheti. Ezeket a főprogramfájlba fogjuk importálni. A sys modult a Python Standard Library-ben találja meg. Azért van rá szükség, mert ez tartalmazza a rendszerére jellemző alapvető paramétereket és függvényeket.
Vegyük ismét az előző példánkat. Tegyük fel, hogy a hello.py fájl az /usr/sammy/ útvonalon van, a main_program.py fájl pedig egy másik könyvtárban található. Először a hello modult fogjuk importálni a main_program.py fájlba a sys modul segítségével. Ezután hozzáfűzzük az /usr/sammy/ útvonalat a path-hoz:
|
1 2 3 4 5 6 |
import sys sys.path.append('/usr/sammy/') import hello ... |
Ha helyesen állította be az útvonalat, a main_program.py fájl könnyen, hibák nélkül fog futni. Ugyanazt a kimenetet fogja kapni, mint amikor mindkét fájl ugyanabban a könyvtárban volt.
-
Python elérési út
A másik lehetőség a Python elérési út (Python path) használata. Itt magát a modult adja hozzá egy olyan elérési úthoz, amelyet a Python ellenőriz a modulok és csomagok keresésekor. Ahogy azt valószínűleg kitalálhatja, ez a modult rendszerszinten elérhetővé teszi, így ez egy életképes, állandó megoldás.
Ehhez meg kell tudnia, hol keresi a Python a modulokat. Futtatnia kell a Python értelmezőt a programozási környezetből, ami így néz ki:
|
1 |
python |
A következő lépés a sys modul importálása:
|
1 |
>>> import sys |
Ezután írassa ki a rendszer elérési útját:
|
1 |
>>> print(sys.path) |
Most egy rendszer elérési utat fog látni kimenetként. Legalább egy lesz. Azonban egy programozási környezetben több is lehet. A listában keresse meg az Ön által használt környezetet. Tartsa szem előtt, hogy a modult a fő rendszer Python elérési útjához is hozzá szeretné adni. Ez így fog kinézni:
|
1 2 |
Kimenet: '/usr/sammy/my_env/lib/python3.5/site-packages' |
Végül mozgassa a hello.py fájlt ebbe a könyvtárba, és importálja a modult a következőképpen:
|
1 2 |
import hello ... |
A kísérlet akkor sikeres, ha a program hiba nélkül futtatja a fájlt. E folyamat eredményeként a modult a rendszer bármely könyvtárából elérheti.
Összegzés
Ennek az útmutatónak az volt a célja, hogy segítsen megismerkedni a Python modulok írásával. Ez nagyon hasonlít ahhoz, ahogyan bármelyik Python .py fájlt írná. Először arról beszéltünk, hogy mi is valójában egy Python modul és a kapcsolódó funkciók. Ezután felfedeztük, hogyan alkalmazhatjuk ezeket a definíciókat más Python programfájlokban. Végül tisztáztuk a modulok elérhetőségének részleteit. Most már tudja, hogyan kell modulokat írni Python 3-ban, valamint hogyan érheti el őket.
A Python programozási nyelvvel kapcsolatos ismeretei további bővítéséhez tekintse meg blogunkat további forrásokért:
- Python 3: Útmutató az adattípusok konvertálásához
- Ciklusok Python 3-ban: A Break, Continue és Pass utasítások használata
- Python 3 karakterlánc-formázók használata
Kellemes kódolást!
Hozzászólások
Még nincsenek hozzászólások. Legyen Ön az első.