Vorrei controllare se la variabile è None o numpy.array. Ho implementato la check_afunzione per farlo.
def check_a(a):
if not a:
print "please initialize a"
a = None
check_a(a)
a = np.array([1,2])
check_a(a)
Ma questo codice genera ValueError. Qual è il modo semplice?
ValueError Traceback (most recent call last)
<ipython-input-41-0201c81c185e> in <module>()
6 check_a(a)
7 a = np.array([1,2])
----> 8 check_a(a)
<ipython-input-41-0201c81c185e> in check_a(a)
1 def check_a(a):
----> 2 if not a:
3 print "please initialize a"
4
5 a = None
ValueError: The truth value of an array with more than one element is ambiguous. Use a.any() or a.all()
not, quindi l'errore si verifica effettivamente quando notcerca di trattare l'array come un singolo booleano e scopre che non può. Se lo fosse stato ~a, ciò avrebbe utilizzato il sovraccarico di NumPy e non sarebbe riuscito quando si ifcerca di utilizzare l'array negato come un singolo booleano.
ValueErrorè una dellenumpydomande più comuni . Significa chenot aproduce un array booleano, con (in questo caso) 2 valori. Questo array booleano non può essere utilizzato comeifcondizione! L'is Nonealternativa è buona a sapersi, ma dovresti anche capire questo errore.