Pythonovské moduly patří mezi jednu z úžasných vlastností tohoto jazyka. Práce s nimi je v základu tak snadná, že je člověk začne používat prakticky automaticky bez jakéhokoliv mentálního bloku (což se nedá říci o mnoha podobných konceptech v jiných jazycích).
Mezi jejich hlavní plusy podle mě patří, že levou zadní dokáží nahradit devět desetin běžného použití tříd, takže člověk netahá OOP tam, kde ho vůbec nepotřebuje (ehm, Java, ehm…).
PS: Na druhou stranu plná funkcionalita modulů dokáže být značně ubíjející (a ne vždy se chovající podle dokumentace).
Nejjednodušším modulem je – světe div se – jakýkoliv soubor s pythoním programem.
Opravdu, na mou duši! Jakmile máte nějaký pythoní soubor program.py
, můžete ho pomocí import program
naimportovat jako modul do jiného pythoního programu a používat tam!
Ke „jménům“ z modulu je tedy možno přehledně přistupovat tečkovou notací přeze jméno modulu (a tedy vlastně daného pythoního souboru)..
..ale též můžeme importovat přímo jednotlivá jména:
Přitom takto jednoduše přístupná jsou především všechna „jména“ na globální úrovni modulu (tedy proměnné, funkce, dokumentační řetězce, třídy…).
Aby to celé fungovalo tak jednoduše, je třeba vyhovět několika celkem jednoduchým požadavkům:
from MODUL import JMÉNO as JINÉ_JMÉNO
.
Už tenhle naprostý základ stačí, aby člověk používal moduly v Python'u pomalu kdykoliv ho napadne. Prostě stačí v adresáři hlavního programu přesunout například pomocné nebo sdílené výpočty do samostatných souborů a máte elegantně vyřešeno jak oddělení kódu či dat, tak můžete výrazně zpřehlednit vlastní program.
Navíc plná funkcionalita modulů není omezena jen na tyto jednoduché případy. Moduly totiž nemusí být pouze jednotlivé (na sobě navzájem nezávislé) soubory, ale mohou tvořit celé hierarchie v sobě zanořených adresářů nebo dokonce mohou být roztroušeny na vícero různých místech souborového systému.
Ale už tuhle úplně nejjednodušší variantu je radost používat ^_^