stympel
@stympel
подпивасник

Как проверять аргументы функции/метода?

Всем привет, есть некий метод или функция, которая принимает ограниченное количество входящих аргументов:

def foo(a: str = None, b: str = None, c: int = None):
    ...


Предположим есть несколько сценариев отработки в зависимости от того, какие аргументы даны.
  • a != None, b != None, c == None
  • a == None, b == None, c!= None


Как вариант можно разбить по ифам с соответсующими исключениями, но я не уверен что это приемлемо, а если это и приемлемо то писать валидацию внутри функции?

Возможно я вообще что-то делаю не так, если с таким сталкиваюсь...
  • Вопрос задан
  • 173 просмотра
Пригласить эксперта
Ответы на вопрос 2
Vindicar
@Vindicar
RTFM!
Если аргумент None, означает ли это, что должно использоваться некоторое значение по умолчанию? Если да, то можно вынести if по этому аргументу отдельно, а дальше вести себя так, словно аргумент задан.

Если же нет, то стоит спросить себя - а не слишком ли много эта функция на себя берёт? Не стоит ли её разделить на несколько?
Ответ написан
Комментировать
@MEDIOFF
Python Developer
Переписывайте функцию что бы она и None нормально отрабатывала. Так же, как по мне, если вы у вас функция может не принимать аргументы вовсе - то логичней это упаковать все в:
def foo(*args, **kwargs):
    ...

И возможно как раз с такой логикой вам легче будет все это устроить
А вообще все сильно зависит от того что вы делаете внутри функции, я вам сказал лишь свои рекомендации не опираясь на требования, а это может внести коррективы
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы