from - python relative import




importa tutto da un modulo tranne alcuni metodi (2)

È possibile import tutto ( * ) da un modulo Python esistente ad eccezione di un numero di metodi esplicitamente specificati?

(Contesto: Contro la pratica consigliata di Python è comune in FEniCS fare from dolfin import * . Alcuni dei nomi dei metodi contengono la stringa "Test" (ad esempio, TestFunction() ) e vengono scambiati per i test unitari dal naso .)


Di solito non è una buona idea eseguire alcuna importazione *, poiché ciò può causare problemi con i moduli che hanno lo stesso nome degli altri moduli.

Vuoi dire che vuoi abilitare questo per il tuo modulo, o farlo per i moduli esistenti?

Non ci sarebbe alcun modo (che io sappia) per farlo per i moduli esistenti che non lo hanno già configurato senza modificare il modulo.


Nel caso in cui se non si ha accesso al modulo, è anche possibile semplicemente rimuovere questi metodi dallo spazio dei nomi globale. Provare

to_exclude = ['foo']

from somemodule import *

for name in to_exclude:
    del globals()[name]




import