Sto sviluppando un modulo che dovrebbe essere in grado di interagire con altri moduli come numpy o PIL. Per accettare parametri e testare se, per esempio, un parametro è un numpy.ndarray
, dovrei prima importare numpy.
Quello che facevo nei progetti precedenti è
numpy_exists = True
try:
import numpy as np
except:
numpy_exists = False
Quindi, accettando i parametri che potrebbe essere di tipo <type numpy.ndarray>
l'ho controllato in questo modo:
if numpy_exists and type(param) == np.ndarray:
# ...
Ora funziona, ma si sente molto debole perché (personalmente) guardo la dichiarazione e l'unica cosa che vedo è il NameError
che questo codice potrebbe generare. Certo, non genera l'errore, ma un codice del genere mi fa sentire in imbarazzo quando lo guardo.
Questo è un buon modo per gestire il problema? C'è uno migliore?