Почему функция выводит none в Python?
3 года назад
Andrey Moshkov
Ответы
Достаточно часто возникают вопросы: "почему моя функция ничего не возвращает?!", "почему из функции возвращается None?", "не могу понять откуда появляется None...".
Для начала необходимо понимать и помнить, что любая функция в Python всегда что-то возвращает и если не используется оператор return
для возврата значения (такие случаи бывают, но об этом позднее), то функция возвращает объект None
. В случае если return
используется, но после него ничего не указывается явно, то по умолчанию считается, что там стоит объект None
.
Порой бывает, что по ошибке указывается возврат вместе с функцией print()
. Для информации функция print()
в Python выводит переданные аргументы на стандартное устройство вывода (экран), но при этом не возвращает значений, т.е. можно считать, что возвращает None
.
Если дальше по коду проводятся манипуляции с переменной b, например сложение, то возникнет ошибка TypeError
:
Возможен вариант, когда функция и не должна ничего возвращать, она производит какие-либо действия с объектами в глобальной зоне видимости и на этом ее функционал заканчивается. В таком случае return
может и не использоваться, но необходимо помнить, что в этом случае функция возвращает None
.
В примере выше использовался метод работы со списками extend()
и необходимо понимать, что метод изменяет объект, к которому применен, а не возвращает результат изменения объекта.
3 года назад
Дмитрий Ибрагимов