наилучшая практика для множественного типа возврата из функции

Если вы используете его локально и хотите выполнить код:

python -m pdb script.py

0
задан jacobcan118 13 July 2018 в 21:24
поделиться

1 ответ

Идея не иметь разных типов - сделать ваши функции более удобными в использовании. Если вызывающий абонент должен проверить тип возврата, он становится излишне сложным, трудно читаемым и подверженным ошибкам. Хуже того: вызывающий может вообще не делать чек, а затем попадает на врасплох. Вы показываете хороший пример: возврат списка или скалярное значение. Если вы сделаете так, как показано, вызывающий должен написать что-то вроде

res = multi_value(x)
try:
    for i in res:
        do_something_with_res(i)
except TypeError:
    do_something_with_res(res)

Учитывая, что ваша функция действительно ничего не бросает, все это рухнет до

for i in multi_value(x)
    do_something_with_res(i)

, если вы вернетесь к одному (или нет) также в виде списков. Преимущество должно быть очевидным. Вы можете подумать, что вы пользуетесь услугой звонящего, но это просто не так.

Некоторые замечания к связанной статье: я думаю, что они дали неоптимальный пример по этому вопросу. В этом примере речь идет о возврате кода ошибки vs для создания исключений, что немного отличается.

0
ответ дан CodeNStuff 17 August 2018 в 12:08
поделиться
Другие вопросы по тегам:

Похожие вопросы: