Python module
Főnév
Python module (tsz. Python modules)
- (informatika) A modul a Python egyik alapvető fogalma, amely lehetővé teszi a kód strukturált szervezését, újrafelhasználhatóságát és karbantarthatóságát. Egy modul tulajdonképpen nem más, mint egy
.pykiterjesztésű Python-fájl, amelyben változókat, függvényeket, osztályokat, konstansokat és futtatható kódrészeket helyezhetünk el.
Miért használjunk modulokat?
Python-modulokat akkor érdemes használni, ha:
- Nagyobb programokat szeretnénk több fájlra bontani.
- Közös kódrészeket (pl. segédfüggvényeket) több projektben is fel szeretnénk használni.
- Logikailag elkülönítenénk a programunk különböző komponenseit (pl. adatkezelés, megjelenítés, algoritmusok stb.).
- Harmadik féltől származó bővítményeket (library-kat) szeretnénk használni.
Modul létrehozása
Nagyon egyszerűen létrehozhatunk saját modult: csak hozzunk létre egy .py fájlt. Példa:
# greeting.py modul
def say_hello(name):
return f"Hello, {name}!"
Most ezt a modult másik fájlból is felhasználhatjuk:
# main.py
import greeting
print(greeting.say_hello("Alice"))
Kimenet:
Hello, Alice!
Modul importálása
Pythonban modulokat az import kulcsszóval importálunk. Többféleképpen lehet importálni:
1️⃣ Teljes modul importálása
import math
print(math.sqrt(16)) # 4.0
2️⃣ Csak bizonyos elemek importálása
from math import sqrt
print(sqrt(25)) # 5.0
3️⃣ Minden elem importálása (nem ajánlott)
from math import *
print(sin(pi / 2)) # 1.0
4️⃣ Modul alias (álnév) használata
import math as m
print(m.cos(0)) # 1.0
Python beépített modulok
A Python számos beépített modult kínál, például:
math– matematikai függvényekrandom– véletlenszám-generálásdatetime– dátum/idő kezelésos– operációs rendszerrel való kommunikációsys– Python interpreter információkjson– JSON-fájlok kezelésere– reguláris kifejezésekstatistics– statisztikai számítások
Példa: random modul használata
import random
print(random.randint(1, 10)) # Véletlen szám 1 és 10 között
Külső modulok (third-party modules)
A beépítetteken túl számtalan külső modul is elérhető a Python Package Index (PyPI) segítségével. Ezeket a pip csomagkezelővel telepíthetjük.
Példa:
pip install requests
Majd a kódban:
import requests
response = requests.get('https://example.com')
print(response.status_code)
A modulok helye és a sys.path
A Python interpreter a modulokat a következő helyeken keresi (sorrendben):
- Az aktuális könyvtárban.
- A
PYTHONPATHkörnyezeti változóban megadott könyvtárakban. - A Python telepítésének
site-packagesmappájában.
A keresési útvonalakat a sys.path listából tudjuk lekérdezni:
import sys
print(sys.path)
Ha egy mappát fel szeretnénk venni a keresési útvonalak közé:
sys.path.append('/path/to/my/modules')
__name__ == "__main__" használata
Ha modulokat írunk, gyakran látunk ilyet:
def main():
print("Ez a program fő része.")
if __name__ == "__main__":
main()
Magyarázat:
- Ha a modult futtatjuk, akkor a
__name__változó"__main__"értéket kap. - Ha a modult importáljuk, akkor a
__name__nem"__main__", hanem a modul neve lesz. - Ezzel elérjük, hogy a
main()csak akkor fusson le, ha közvetlenül futtatjuk a fájlt.
Modulok csoportosítása: package-ek
Ha sok modult használunk, érdemes őket package-ekbe szervezni.
Egy package nem más, mint egy mappa, amelyben van egy __init__.py fájl (akár üresen is).
Struktúra:
my_package/
__init__.py
module1.py
module2.py
Használat:
from my_package import module1
module1.my_function()
Vagy:
import my_package.module2
Modul cache: __pycache__
Ha futtatunk vagy importálunk egy modult, a Python az adott verzióhoz lefordítja bytecode-ra (.pyc fájlba), és a __pycache__ mappába teszi.
Ez gyorsítja a következő futtatásokat, mert nem kell újra parse-olnia az eredeti .py fájlt.
Modul dokumentáció
Fontos, hogy a moduljainkhoz írjunk dokumentációt:
"""
greeting modul
Tartalom:
- say_hello(name): köszönést ad vissza
"""
def say_hello(name):
"""Adott névhez üdvözlő üzenet"""
return f"Hello, {name}!"
A help() függvénnyel lekérhetjük a dokumentációt:
import greeting
help(greeting)
Gyakori modulhasználati minták
1️⃣ Utility modulok
Segédfüggvényeket külön modulba teszünk:
# utils.py
def is_even(n):
return n % 2 == 0
2️⃣ Konfigurációs modul
Konstansokat modulba szervezünk:
# config.py
DB_HOST = "localhost"
DB_PORT = 5432
3️⃣ Több modulos alkalmazás
# main.py
# src/
# __init__.py
# data.py
# logic.py
# ui.py
Modul tesztelés
Gyakran írunk modulokhoz unit teszteket:
# test_greeting.py
import greeting
def test_say_hello():
assert greeting.say_hello("World") == "Hello, World!"
A teszt futtatásához használhatunk pytest vagy unittest modult.
pytest test_greeting.py
Modul verziókezelés
Ha saját modulunkat más projektekben is használni akarjuk, érdemes verziószámmal ellátni:
__version__ = "1.0.0"
Ekkor mások is tudják, hogy melyik verzió van telepítve.
import greeting
print(greeting.__version__)
Összefoglalás
A Python modulok lehetővé teszik:
✅ a kód felosztását és újrafelhasználását ✅ harmadik féltől származó csomagok integrálását ✅ logikus struktúrák építését ✅ könnyebb karbantartást ✅ tesztelhetőséget
Alapvető importálási módok:
import modul
from modul import elem
import modul as alias
Alkalmazási területek:
- Beépített modulok (
math,random,osstb.) - Külső könyvtárak (
numpy,pandas,requestsstb.) - Saját modulok és package-ek
- Python module - Szótár.net (en-hu)
- Python module - Sztaki (en-hu)
- Python module - Merriam–Webster
- Python module - Cambridge
- Python module - WordNet
- Python module - Яндекс (en-ru)
- Python module - Google (en-hu)
- Python module - Wikidata
- Python module - Wikipédia (angol)