Я только что закончил сценарий свертки для изображений.
Теперь моя функция выглядит так:
def conv(image: np.ndarray,
conv: np.ndarray, *args):
assert 1 < image.ndim < 4, "error0"
assert conv.ndim is 2, "error1"
xconv, yconv = conv.shape
assert xconv == yconv and xconv % 2, "error2"
# computations
Если какое-либо из этих утверждений не выполняется, значит, ввод неверен и большинство возможно, функция выдаст ошибку.
Хотя пользователь не сможет понять, что не так, плюс задержка, пока не дойдет до ошибки.
Я везде читал, что assert
- это используется для отладки. Что лучше «замедлять» мой алгоритм каждый раз, когда он работает, чем более медленные и недокументированные ошибки (он должен ссылаться на строку документации)? Какая практика наиболее распространена в таких случаях?