У меня есть функция, которая рассчитывает работать с числовым типом. Я читаю числа для работы из файла, поэтому, когда я их читаю, это строки, а не числовые. Лучше ли моя функция терпимо относиться к другим типам (вариант (A) ниже) или преобразовать в числовое значение перед вызовом функции (вариант (B) ниже)?Python convert style: внутри или вне функции?
# Option (A)
def numeric_operation(arg):
i = int(arg)
# do something numeric with i
# Option (B)
def numeric_operation(arg):
# expect caller to call numeric_operation(int(arg))
# do something numeric with arg
Я не понимаю, что вы пытаетесь сказать. «все, что вы делаете, просто скроет ошибку». В вашем примере ничего не скрывает тот факт, что foo не может обрабатывать строки. Если я вызываю foo («hello»), python throws «не может преобразовать int в str». Хью? Я не дал тебе инт? Что, черт возьми, неправильно с этой функцией? Я бы сказал, что ошибка теперь максимально скрыта :) – pwuertz
Я хочу сказать, что ваша функция ожидает числовые данные. Что-то должно пойти не так, когда вы попытаетесь использовать строку вместо этого, что почти наверняка вызовет 'TypeError'. __That__ должна быть ошибкой, которую вы передаете пользователю, - той, что из бит, который _actually поступил неправильно. – katrielalex