Можно ли возвращать None из __new __?

В общем, разумно ли возвращать None из метода __ new __ , если пользователь класса знает, что иногда конструктор оценивает значение None?

Документация не подразумевает, что это незаконно, и я не вижу любые немедленные проблемы (поскольку __ init __ не будет вызываться, None не является экземпляром рассматриваемого пользовательского класса!). Но меня беспокоит

  1. , могут ли возникнуть другие непредвиденные проблемы
  2. , является ли хорошей практикой программирования, чтобы конструкторы возвращали 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)
7
задан max 5 October 2010 в 02:28
поделиться