В классе Python, какую ошибку я должен поднять из метода экземпляра, когда некоторые другие атрибуты класса должны быть изменены до запуска этого метода?
Я иду из фона С#, где я бы использовал InvalidOperationException
, "исключение, которое бросается, когда вызов метода недействителен для текущего состояния объекта", но я не смог найти эквивалент встроенное исключение в Python.
Я поднимал ValueError
( "при поднятии, когда встроенная операция или функция получает аргумент, который имеет правильный тип, но несоответствующее значение" ), когда проблема связана с параметрами функции. Я полагаю, что это технически недопустимое значение для параметра self
; это правильный способ лечения? Например, это идиоматика: raise ValueError("self.foo must be set before running self.bar()")
?