Внутри функции возврат значения лучше через переменную или сразу через выражение? PEP8
Возник спор по стилю кодирования, по поводу простейшей вещи. Правых нет, но оно и понятно. Хотелось бы узнать, у тех, кто хоршо знает правила. Что PEP8 говорит по этому поводу? Как будет лучше?
# Первый вариант через переменную. Такую переменную можно логировать, в пичарме.
def my_func(x):
n = x + 2
return n
# Второй вариант, без лишних переменных. Меньше строк.
def my_func_two(x):
return x + 2
Ответы (1 шт):
PEP8 ничего об этом не говорит, единственное, что можно процитировать: "Код читается намного больше раз, чем пишется".
Ближе к этому случаю PEP20 (он же Дзен Python).
Он тоже не дает конкретных рекомендаций, но гласит, в частности (я выбрал подходящее к этому случаю):
"3. Простое лучше сложного."
"8. Особые случаи не настолько особые, чтобы нарушать правила."
"9. При этом практичность важнее безупречности."
"13. Должен существовать один - и, желательно, только один – очевидный способ сделать что-то."
Тогда, исходя из 3, 8 и (отчасти) 13 надо выбрать код 2. Но, исходя из 9 необходимо посмотреть на конкретную задачу и определить, что практически требуется от задачи.
Итого:
Если логирование нужно постоянно, то оставим код 1.
Если оно нужно только на момент отладки, то оставим только на момент отладки и уберем в финальной версии, перейдя к коду 2.