мой вопрос - скорее вопрос дизайна. В Python, если код в вашем "конструкторе" терпит неудачу, объект не будет определен. Таким образом:
someInstance = MyClass("test123") #lets say that constructor throws an exception
someInstance.doSomething() # will fail, name someInstance not defined.
У меня действительно есть ситуация, когда будет много кодового копирования, если я удалю код, подверженный ошибкам, из моего конструктора. В основном мой конструктор заполняет несколько атрибутов (через IO, где многое может пойти не так), к которым можно получить доступ с различными геттерами. Если я удалю код из контрструктора, у меня будет 10 геттеров с кодом вставки скопировать что-то вроде:
- Атрибут действительно установлен?
- выполнить некоторые действия ввода-вывода для заполнения атрибута
- возвращает содержимое рассматриваемой переменной
Мне это не нравится, потому что все мои получатели будут содержать много кода. Вместо этого я выполняю операции ввода-вывода в центральном расположении, конструкторе и заполняю все мои атрибуты.
Каков правильный способ сделать это?