Rodegast
Но ведь значение из функции будет кто то использовать и не факт что его догадаются на None проверить, а это приводит к ошибкам.
Ок, как по вашему, правильно ли работает dict.get(key)? Он возвращает значение или None. Это же вообще стандартная практика, в языки программирования даже специальный синтаксис вводят типа элвис оператора, чтобы проверять на None.
Rodegast
По этому разумно вместо None возвращать объект который не повлияет на дальнейшие вычисления.
Откуда функция и её автор знают, повлияет это на вычисления или нет? Как вы наверняка знаете, в стандарте
IEEE 754 есть такое специальное значение NaN. Получение NaN, это не ошибка, не возникает исключения. Но и числовых операций вы с ним сделать не сможете. Что это, плохо продуманный стандарт, или необходимость? По вашей логике можно было бы возвращать ноль. Но это неправильно математически и не библиотеке решать, как эту неправильность исправлять, это дело программиста, и вам как программисту придется проверять свои вычисления на NaN.
Rodegast
его догадаются на None проверить
А документацию читать не надо? Откуда программист вообще знает, какой тип возвращает функция если не из документации? Ну вот там и написано int | None. Все прозрачно как бы.