Я не согласен со многими ответами здесь.
Явное лучше, чем неявное, но иногда меньше, когда речь идет о читабельности.
def get_cat():
if cat_is_alive():
return Cat()
# vs
def get_cat():
if cat_is_alive():
return Cat()
return None
В этом конкретном примере у вас есть 2 дополнительные строки, которые действительно не дают полезной информации, так как все функции по умолчанию возвращают None.
Кроме того, явная return None
исчезает еще больше с использованиемподсказок типа:
def get_cat() -> Union[Cat, None]:
if cat_is_alive():
return Cat()
Включая return None
здесь есть двойная избыточность: по умолчанию ничего не возвращается, и это явно указано в разметке подсказки типа.
Имхо, избегайте отставания return None
они абсолютно бессмысленны и безобразны.