Я пишу небольшую функцию, которая принимает целое значение и строки, такие как:Pythonic способ справиться проверки
param1: 1
param2: "1 1 1"
Функция разделит строковый параметр и подтвердить его Len против первого параметра, как так:
def prepare_integer_set(expected_len, integer_string):
prepared_integer_set = integer_string.split()
if len(prepared_integer_set) != expected_len:
raise ValueError('Number of expected integers does not match integer string')
return [int(x) for x in prepared_integer_set]
Однако исключение беспокоит меня. Я предпочел бы вернуть false, поскольку вход поступает от пользователя, поэтому это не исключение, если они делают ошибку.
Как это следует обрабатывать? Разделить метод в 2, имея отдельные методы проверки и подготовки? Или это pythonic, поскольку в настоящее время он выбрасывает исключение?
Здесь будет альтернатива, которая расщепляется:
def validate_integer_set(expected_len, integer_set):
return expected_len == len(integer_set)
def prepare_integer_set(integer_string):
prepared_integer_set = integer_string.split()
return [int(x) for x in prepared_integer_set]
Если вы хотите вернуть False, почему бы не просто вернуть False? –
Потому что я буду возвращать смешанные типы –
Итак? Это не обязательно плохо ... Это зависит от того, что делает эта функция (в контексте приложения) и где она это делает ... – Carpetsmoker