Python, проверка аргументов метода
Получаю ошибку:
The truth value of an array with more than one element is ambiguous. Use a.any() or a.all()
Код:
def test(file):
if not file:
raise IoError
Вызываем, как:
import cv2
file = cv2.imread("1.png")
test(file)
Причина ясна, imread вернет массив numpy.
Но как сделать проверку в методе, что в переменной что-то есть. Желательно, сохранить возможность вызывать метод так:
test("string")
Желательно, так-как в реальных условиях код выглядит так:
def method(type="camera", file):
if type !="camera" and not file:
raise IoError
То есть, вот такую проверку нужно провернуть.
Ответы (1 шт):
Автор решения: GrAnd
→ Ссылка
Можете сделать проверку в зависимости от типа входной переменной.
import numpy as np
def test(value):
if isinstance(value, np.ndarray):
if not value.size:
raise IoError
elif not value:
raise IoError