В общем, разумно ли возвращать None из метода __ new __
, если пользователь класса знает, что иногда конструктор оценивает значение None?
Документация не подразумевает, что это незаконно, и я не вижу любые немедленные проблемы (поскольку __ init __
не будет вызываться, None не является экземпляром рассматриваемого пользовательского класса!). Но меня беспокоит
Конкретный пример:
class MyNumber(int):
def __new__(cls, value): # value is a string (usually) parsed from a file
if value == 'N.A.':
return None
return int.__new__(cls, value)