4.2. Importare i moduli usando from module import

Python utilizza due modi per importare i moduli. Entrambi sono utili e dovreste sapere quando usarli. Il primo, import module, l'avete già visto nel capitolo 2. Il secondo, raggiunge lo stesso scopo, ma funziona in modo differente.

Esempio 4.3. Sintassi basilare di from module import


from UserDict import UserDict

Questa sintassi è simile a quella di import module che conoscete ed amate, ma con una importante differenza: gli attributi ed i metodi del modulo importato types vengono importati direttamente nel namespace locale, in modo tale che siano disponibili direttamente, senza qualificare il nome del modulo. Potete importare elementi individualmente od usare from module import * per importare qualsiasi cosa.

Nota
from module import * in Python è simile allo use module in Perl; import module nel Python è come il require module del Perl.
Nota
from module import * in Python è come import module.* in Java; import module in Python è simile a import module del Java.

Esempio 4.4. import module contro from module import

>>> import types
>>> types.FunctionType             1
<type 'function'>
>>> FunctionType                   2
Traceback (innermost last):
  File "<interactive input>", line 1, in ?
NameError: There is no variable named 'FunctionType'
>>> from types import FunctionType 3
>>> FunctionType                   4
<type 'function'>
1 Il modulo types non contiene metodi, solo attributi per ogni oggetto tipo di Python. Notate che l'attributo, FunctionType, deve essere qualificato con il nome del modulo, in questo caso, types.
2 FunctionType di per sé non è definito in questo namespace; esiste solo nel contesto di types.
3 Questa sintassi importa l'attributo FunctionType dal modulo types direttamente nel namespace locale.
4 Adesso FunctionType può essere utilizzato direttamente, senza riferirsi a types.

Quando dovreste usare from module import?

Per altri casi, è solo una questione di stile, in futuro vedrete codice Python scritto in entrambi i modi.

Ulteriori letture