Modulok és azok behozatala

A lecke módszertani fejlődése
Az Elemző Kurzus: Bevezetés az objektumorientált programozáshoz a Pythonban
Szint: Programozás kezdőknek

Az utolsó leckében egy "komoly" programot írtunk, amelyet más programozók használhatnak. De hogyan? Csak másolja be a kódot és illessze be a szkriptekbe. Vagy van-e gazdaságosabb módon (a kód mennyiségének csökkentése és a használat kényelme miatt)?

Nagyobb programok létrehozásakor az úgynevezett moduláris elven alapult, hogy hasznos, ha van egy főfájl a programkód egy részével, amelyhez más fájlok tartalmát csatolják (amelyhez importálják). Ha a fő fájl forráskódja gépi kódká alakul, az importált fájlok a fő fájl kódjaként is végrehajtásra kerülnek.

Modulok és azok behozatala

A program szervezésének ez a módja lehetővé teszi, hogy elkülönítse a gyakran használt kódot egy fájlmodulban, majd importálja más fájlokba a kód másolása nélkül. De ez nem az egyetlen előnye a programszervezés moduláris elvének.

Tehát hogyan importál egy fájl tartalmát a másikba a Python programnyelvben? Két fő módja van: az import-nyilatkozat és a nyilatkozat. Az első utasítás teljesen elindítja (értelmezi) a fájlmodult, és a modul fő változatához tartozó változók (attribútumok) eléréséhez meg kell adnia a modul nevét a szükséges attribútum előtt: module.attribute (úgynevezett dot notation). A klauzula csak a megadott fájlneveket küldi el a modul fájlból a tolmácshoz, azonban ezekhez a változókhoz nem kell megadnia a modul nevét. Az első módszer jó, ha szinte az egész modul tartalmát szeretné használni, a második - ha egy vagy két függvényre vagy egy osztályra van szüksége a modulból. A lecke példájánál fogjuk használni az import utasítást.

Az importálás a Python programozási nyelvben a következő: az importált szó után írja be az importált modul nevét. A modul és a Python fájlja szinte érthetetlen. A Python-kódú fájlok általában .py kiterjesztéssel rendelkeznek, de az importálási utasításban nincsenek kiterjesztések. Például, ha van egy file-module scale.py, akkor importáljuk egy másik fájlba, például: import skála.

Hol található a modul? Elvben, bárhol, mert akkor "manuálisan" konfigurálhatja a tolmácsot úgy, hogy keresni fogja, ahol a programozó akar. Ha azonban nem állít be semmit, a Python-értelmező megtalálja a fájlokat, ha például a Python telepített könyvtárában található, vagy ugyanabban a könyvtárban található, mint az importálandó fájl. Ez az utolsó lehetőség, amelyet használni fogunk.

Tehát van olyan kódfájl, amely lehetővé teszi számunkra a ragasztandó helyiség számítását (7. lecke). Hívja szoba.py. Ezenkívül távolítsa el a "tesztkódot" abból ...

... és feltételezzük, hogy a modul osztályai egy másik (fő) fájlban lesznek használva. Tegyük fel, hogy ez az alapfájl biztosítja a felhasználói felületet az adatok beviteléhez és az eredmény eléréséhez. A fő fájlt ugyanabba a könyvtárba kell menteni, mint a rooms.py fájl.

Először is importáljuk a file rooms.py fájl tartalmát

Ezután rendezzük az adatkérést a felhasználótól, miközben az adatokat egész számra (int függvényre) konvertáljuk:

Most hozz létre egy osztályteret objektumot. Az osztályleírás az importálás (vagyis nem) által importált szobamodulban található, így a Room osztályhoz és annak attribútumaihoz való hozzáféréshez meg kell adnia azt a modult, amelyben az objektum létrehozásakor található:

És most az osztály attribútumait is használhatja a modulból, ahogy tetszik:

Gyakorlati munka:

  1. Hozzon létre egy parancsfájlt, amely a modulot a Room osztályba importálja és használja (ahogyan ez a lecke is mutatja).
  2. Adja hozzá az előző programot, bővítve annak lehetőségeit: opcionálisan további információkat szerezhet (az ablak és az ajtó területét).
  3. A programot oly módon állítsuk át, hogy ne kérdezze meg a felhasználót, hanem öt kész megoldást kínál: a képernyőn megjelenik a különféle szobák jellemzői - a felhasználó csak akkor választhat.

Kapcsolódó cikkek