Я передаю аргумент (допустим, переменную 'a') функции, и эта переменная может быть равна None или быть np.array.
# Option 1
a = None
# Option 2
a = np.array(range(0,10))
В зависимости от того, что равно Я хочу делать разные вещи.
Это то, что я сделал:
if a == None:
do this
else:
do that
Проблема в том, что np.array не может равняться None, и я получаю следующее сообщение: " ValueError: Значение истинности массива с более чем одним элементом неоднозначно. Используйте a.any () или a.all () "
Однако, если я использую a.any () или a.all ( ) и a = None, появляется другая ошибка, потому что None не имеет атрибута 'any' или 'all'.
Как мне это исправить?
I попробовал следующее, но кажется, что должен быть лучший способ, чем дублирование кода, или я ошибаюсь?
try:
if a == None:
do this
else:
do that
except:
if a.any() == None:
do this
else:
do that