Obsah
Když naše znalosti o Krajta Jdou nad rámec základů a děláme stále složitější programy, je potřeba zahrnout naše dříve vytvořené kódy, abychom nemuseli znovu a znovu objevovat kolo. Navíc ani nemusí kopírovat kód do nových souborů, aby se vyhnuli této špatné praxi.K tomu máme moduly, které nejsou ničím jiným než programem, který zařazujeme a máme k dispozici veškerý jeho obsah.
Moduly
Jak jsme vysvětlovali, modul není nic jiného než zahrnutí programu do našeho kódu, se kterým přistupujeme k veškerému jeho obsahu, hmatatelným příkladem modulu je matematika S nimiž jsme již pracovali, včetně následujícího způsobu, jak můžeme vidět na následujícím obrázku:
V následujícím příkladu musíme mít náš preferovaný textový editor pro kódování v Pythonu a vytvoříme náš Hello World! Program, podívejme se na následující obrázek:
Zatím nic složitého nebo neznámého, abychom mohli moduly importovat, musíme je uložit na příslušnou cestu, můžeme provést následující pokyny a budeme vědět, kam náš program uložit:
>>> import sys >>> sys.path.append ('c: / python')
S tím už si říkáme Krajta co by měla trasa hledat? c: / python
Jakmile je tam náš modul uložen, můžeme jej dál volat.
Nyní provedeme import a uvidíme, co získáme:
>>> import ahoj Ahoj, světe!
Tím jsme získali náš tisk na obrazovku, jak jsme uvedli v souboru ahoj.py, ale co když chceme udělat nový import:
>>> import ahoj >>>
Nyní to nedělá nic, nevytiskne ani nevyvolá chybu, je to proto, že při importu již jednou Krajta v tomto případě má modul v paměti a znovu jej nezahrnuje, protože je importován pouze jednou, protože je to kvůli optimalizaci implementované v Pythonu, je to proto, že pokud zahrneme modul a ten obsahuje další modul, který jsme již měli zahrnuty dříve, takže nebudeme načítat stejnou věc do paměti dvakrát.
To je důvod, proč toto chování je, je to jako ekvivalent PHP's include_once, samozřejmě s jejich rozdíly každý a také proto, že modul by neměl být prováděn k provádění akcí, ale k ponechání nástrojů, které mohou být užitečné v našich programech.
Přepišme náš modul hello.py, tentokrát uděláme následující.
# hello2.py def hello (): tisk „Ahoj, světe!“
Vidíme, že již zprávu nevytiskneme přímo, ale umístíme ji do metody s názvem Ahoj; Nyní provedeme import modulu do našeho programu s následujícím kódem:
>>> import ahoj2
Jakmile je modul načten, můžeme přistoupit k metodě, kterou jsme definovali dříve, a uvidíme výsledek: