Python – Moduly a balíčky

Úvod

  • Modul = soubor s příponou .py, který obsahuje funkce, třídy nebo proměnné.

  • Umožňuje:

    • rozdělit program do menších částí,

    • znovu použít kód,

    • udržovat přehlednost projektu.

Základní použití

  • Každý .py soubor může být modul.

  • Načítá se pomocí klíčového slova import.

# soubor: matika.py
def soucet(a, b):
    return a + b
# hlavní program
import matika
print(matika.soucet(3, 4))

Import konkrétní funkce

from matika import soucet

print(soucet(5, 6))

Lze importovat více funkcí:

from matika import soucet, rozdil

Nebo všechno:

from matika import *

Alias pro modul

Pomocí as lze zkrátit název modulu.

    import math as m
    print(m.sqrt(16))

Vlastní moduly

  1. Vytvoř soubor moje_funkce.py

  2. Do něj vlož:

        def pozdrav(jmeno):
          print(f"Ahoj, {jmeno}!")
  3. V jiném souboru:

        import moje_funkce
        moje_funkce.pozdrav("Jan")

Modul _main_

  • Každý Python soubor může být spuštěn buď:

    • jako hlavní program (_name_ == "_main_")

    • nebo jako importovaný modul

def test():
    print("Test modulu")

if __name__ == "__main__":
    print("Spouštím přímo")
else:
    print("Importuji modul")

Vnořené adresáře – balíčky

  • Struktura:

projekt/
├── main.py
└── matematika/
    ├── __init__.py
    └── operace.py
  • Soubor init.py značí, že adresář je balíček.

  • Import:

from matematika.operace import soucet

Příklad balíčku

# matematika/operace.py
def soucet(a, b):
    return a + b

def rozdil(a, b):
    return a - b
# main.py
from matematika import operace

print(operace.soucet(2, 3))

Standardní knihovna Pythonu

  • Python obsahuje stovky užitečných modulů:

    • math – matematické funkce

    • datetime – práce s časem a datem

    • os – práce se soubory a systémem

    • sys – systémové proměnné

    • random – generování náhodných čísel

import math, datetime, random

print(math.pi)
print(datetime.date.today())
print(random.randint(1, 10))

Instalace externích modulů

Používá se nástroj pip.

pip install requests

Import modulu v kódu:

import requests

response = requests.get("https://example.com")
print(response.status_code)

Zobrazení nainstalovaných modulů

pip list
pip show requests

Hledání modulu v systému

Výpis všech cest, kde Python hledá moduly.

import sys
print(sys.path)

Úkoly

  1. Vytvoř vlastní modul utils.py s funkcí pozdrav(jmeno).

  2. Použij jej v hlavním programu.

  3. Vytvoř balíček matika/ s modulem operace.py (s funkcemi soucet, rozdil).

  4. Importuj a použij obě funkce v main.py.

  5. Nainstaluj modul requests a zjisti HTTP kód stránky https://python.org.

Shrnutí

  • Modul = soubor s funkcemi a třídami.

  • Balíček = adresář obsahující moduly a init.py.

  • import umožňuje opakované využití kódu.

  • pip slouží pro správu externích modulů.

  • Python standardní knihovna obsahuje stovky hotových nástrojů.