Python csomagok: Hogyan lehet létrehozni és importálni őket?

Ebben a cikkben megtanulja a kódbázist tiszta, hatékony modulokra osztani Python csomagok segítségével. Ezenkívül megtanulja saját vagy harmadik fél csomagjainak importálását és használatát a Python programban.

Videó: Python csomagok: Rendezze a kódot

Mik azok a csomagok?

Általában nem tároljuk az összes fájlt a számítógépünkön, ugyanazon a helyen. A könyvtárak jól szervezett hierarchiáját használjuk a könnyebb hozzáférés érdekében.

A hasonló fájlokat ugyanabban a könyvtárban tárolják, például az összes dalt megtarthatjuk a " zene " könyvtárban. Ehhez hasonlóan a Python csomagokat tartalmaz könyvtárakhoz és modulokat a fájlokhoz.

Mivel alkalmazásprogramunk nagyobb méretűvé válik, sok modullal, hasonló modulokat helyezünk el egy csomagban, és különböző modulokat különböző csomagokban. Ez egy projektet (programot) könnyen kezelhetővé és fogalmilag egyértelművé tesz.

Hasonlóképpen, mivel egy könyvtár tartalmazhat alkönyvtárakat és fájlokat, a Python csomagnak lehetnek alcsomagjai és moduljai.

A könyvtárnak tartalmaznia kell egy elnevezett fájlt __init__.py, hogy a Python csomagnak tekinthesse. Ez a fájl üresen hagyható, de általában a csomag inicializáló kódját helyezzük el ebben a fájlban.

Itt egy példa. Tegyük fel, hogy játékot fejlesztünk. A csomagok és modulok egyik lehetséges szervezése az alábbi ábrán látható lehet.

Csomagmodul felépítése a Python programozásban

Modul importálása egy csomagból

Modulokat csomagokból importálhatunk a dot (.) Operátor használatával.

Például, ha a startmodult a fenti példában szeretnénk importálni , akkor a következőképpen tehetjük meg:

 import Game.Level.start

Ha ez a modul tartalmaz egy megnevezett függvényt select_difficulty(), akkor a teljes nevet kell használnunk a hivatkozásra.

 Game.Level.start.select_difficulty(2)

Ha ez a konstrukció hosszúnak tűnik, akkor importálhatjuk a modult a csomag előtag nélkül az alábbiak szerint:

 from Game.Level import start

Most egyszerűen a következőképpen hívhatjuk a függvényt:

 start.select_difficulty(2)

A csomagban lévő modulból csak a szükséges függvény (vagy osztály vagy változó) importálásának másik módja a következő:

 from Game.Level.start import select_difficulty

Most közvetlenül hívhatjuk ezt a funkciót.

 select_difficulty(2)

Bár könnyebb, ez a módszer nem ajánlott. A teljes névtér használata elkerüli az összetévesztést, és megakadályozza két azonos azonosító név ütközését.

Csomagok importálása közben a Python megkeresi a könyvtárban megadott könyvtárak listáját sys.path, hasonlóan a modul keresési útvonalához.

érdekes cikkek...