Это очень простой вопрос дизайна. Моя программа должна выйти, если некоторые условия не выполняются. У меня есть class A
. Указанный ниже способ main_logic
содержит инструкции по управлению. Этот метод создает несколько экземпляров и вызывает некоторые методы, определенные на них. Я показываю один такой пример, где он создает объект b = CalcB()
, а затем вызывает b.run().python Рекомендуемый способ выхода из программы
В то время как в b.run()
, я ухожу из кода в update_val
. main_logic
отвечает за вызов другого кода.
Мои вопросы:
- Это приемлемая практика для выхода из программы из некоторого опорного кода (в данном случае
update_val
изCalcB
Или я должен всегда возвращать код ошибки и сделать это внутри main_logic? ? есть ли лучший дизайн справиться с такой ситуацией? Пример некоторого класса обработки ошибок? любая иллюстрацией элегантного решения будет оценено
import sys class Shelf: def get_factor(self): self.some_factor = 0.5 return self.some_factor class CalcB: def __init__(self): self.shelf = Shelf() self.ref = 1.0 self.area = 3.14285 def run(self): print("Calculation B running") some_factor = self.shelf.get_factor() self.update_val(some_factor) def update_val(self, some_factor): self.value = some_factor*self.area if (self.value > self.ref): print("too bad.. exiting the program") sys.exit() class A: def main_logic(self): b = CalcB() b.run() # some more code follows... #do_something() #d = CalcD() #do_something_else(d) if __name__ == "__main__": a = A() a.main_logic()
спасибо @tripleee и Antti. Итак, предложите ли вы создать собственный класс исключений? Кроме того, вы могли бы ответить на вторую часть вопроса ... то есть, должен ли я иметь некоторый общий класс для наблюдения за такими проблемами и возникновения исключения? – stackjs