Каждый из них возвращает один и тот же синглтон None
- функциональной разницы нет.
Я думаю, что разумно идиоматично отказаться от утверждения return
, если вам не нужно, чтобы он рано вырвался из функции (в этом случае голый return
чаще встречается) или возвращать что-то кроме None
. Также имеет смысл и, кажется, идиоматично писать return None
, когда он находится в функции, у которой есть другой путь, который возвращает нечто иное, чем None
. Написание return None
явно является визуальной подсказкой для читателя о том, что есть еще одна ветвь, которая возвращает что-то более интересное (и что код вызова, вероятно, придется обрабатывать оба типа возвращаемых значений).
Часто в Python, функции, которые возвращают None
, используются как функции void
в C. Их назначение, как правило, работает на входных аргументах на месте (если вы не используете глобальные данные ( дрожи )). Возврат None
обычно делает более явным, что аргументы были мутированы. Это делает его более понятным, почему имеет смысл отказаться от утверждения return
с точки зрения «языковых условностей».
Тем не менее, если вы работаете в базе кода, которая уже имеет -set условностей вокруг этих вещей, я определенно последую примеру, чтобы помочь базе кода оставаться единой ...