Возвращая различное количество и типы значений? - PullRequest
1 голос
/ 29 февраля 2020

Часто мне нужно, чтобы метод ИЛИ возвращал другое число ИЛИ типы значений. Например:

def test(x,y,ret='both') :
  s = x + y
  m = x * y
  if ret = 'both' : return s, m
  if ret = 'sum' : return s
  if ret = 'mult' : return m

Также иногда я хочу иметь поведение типа Аспект, где я внедряю код отладки, который также может изменить типы возврата / num-of-vals

Есть ли стандарт Шаблон программирования, который обрабатывает это? Декораторы?

Пример работает, но abit clunky ..


это просто пример ... для иллюстрации, не воспринимайте его как канонический подход

1 Ответ

0 голосов
/ 29 февраля 2020

Насколько я знаю, удобно, что любое действие атома c выполняется другой функцией. В любом случае, если вы все еще хотите выполнить несколько вычислений в одной и той же функции и не беспокоиться о производительности, вы всегда можете вернуть и sum, и mult (и любую другую переменную) и оставить вызывающей стороне задачу выбора того, что необходимо , Лично я нахожу дикторов хорошим подходом:

def test(x, y) :
    values = {}
    values['sum'] = x + y
    values['mult'] = x * y
    return values
...