Hai indovinato il modo giusto per farlo, ma posso renderlo un po 'più formale e dare (si spera) una spiegazione più chiara di quella che hai trovato altrove. Se vuoi modulare le importazioni, che a seconda della tua filosofia di codifica potrebbero essere un'idea buona o cattiva di per sé (trasparenza rispetto al riutilizzo del codice), indipendentemente dal fatto che le importazioni avvengano o meno in __init__.py
puoi importare le tue importazioni da un altro script. Per esempio:
"""import_scripts.py"""
import numpy as np
import scipy as sp
...
"""actual_code.py"""
from import_scripts import *
# np and sp are now in scope
Importazione da __init__.py
è in gran parte la stessa, basta tradizionalmente utilizza un import relativa, invece, se si sta accedendo dalla stesso modulo:
# To import form __init__
from . import *
importante notare, però, che questo tipo di importazioni funzionerà solo se si eseguono questi script Python esplicitamente come moduli anziché come script. Ciò significa:
python -m foo
invece di
python foo.py
Importante, ma sottile distinzione.
Spero che questo aiuti. Fammi sapere se hai altre domande.
fonte
2014-04-09 16:57:08
+1 Grazie per la sottile distinzione! – ksindi