A
Python lehetővé teszi, hogy nagyobb terjedelmű scripteket, programcsomagokat a
belső struktúrájának megfelelően tagoljunk és ezt a programszövegben is
jelezzük. Erre szolgálnak a modulok, amelyek logikailag összetartozó
programrészeket fognak egybe. A modul neve az azt tartalmazó file neve. A
modulok kiterjesztése .py
a konvenciónak megfelelően. Egy modul neve a modulon belül a __name__
modul-globális
szimbólumon keresztül hozzáférhető. Modulokat más scriptekből az import
vagy from
module import *
utasításokkal importálhatunk. Az első forma a teljes modult, a második a modul
bizonyos függvényeit importálja (a `*' helyett vesszővel elválasztott
felsorolás is állhat). A második formában a `*' használatánál a `_'-sal kezdődő
függvények nem importálódnak. A modulok állományrendszerbeli keresése a PYTHONPATH
környezeti változóban felsorolt könyvtárak sorrendjében történik.
Névterek: hasonlóan a C++-beli namespace-ekhez, a különböző nyelvi elemeknek Pythonban is létezik struktúrája. A struktúra különböző szintjeit `.'-tal választjuk el egymástól. A névterek általában láthatósági tartományokat is jelölnek. A névtér tulajdonképpen név -> objektum leképezések halmaza, jelenleg így is vannak implementálva (szótárakkal). Általános felhasználásra szánt programcsomagokat szervezhetük ún. csomagokba is, melyek tetszőleges mélységű struktúrával rendelkezhetnek. Perl-hez hasonlóan az állományrendszerben tükröződik a csomagok struktúrája. Például egy hangállományokat kezelő Python csomag a következőképpen nézhet ki:
Az __init__.py nevű speciális állományokra szükség van, hogy a Python csomagokként kezelje a könyvtárakat. Ez lehet üres, vagy tartalmazhat inicializációs kódot, ami a csomag importálásánál fut le.
Többsoros importálás:
Amikor a from module import fv1, fv2 utasítást használjuk, akkor vesszővel elválasztva majd a sor végén backslash-sel külön sorba is írhatjuk a függvényneveket.
Python 2.4.: Használható még: from module import (fv1,fv2) is. Itt nem kell backshlash a sorok végére, elég vesszővel elválasztani a függvényneveket.