Если произошел сбой, почему бы вам не вызвать исключение?
Конечно, вы можете вернуть (-1, -1) как сбой, но, на мой взгляд, это не будет хорошим решением.
Помните, что в Python EAFP (проще просить прощения, чем разрешения) предпочтительнее LBYL (посмотрите, прежде чем вы прыгните).
Это означает, что лучше писать код подгипотеза о том, что все работает, а затем перехват соответствующих исключений.
Ваш код может затем стать
def myFunc(self):
if self.validate() != 0:
raise CustomNotValidatedException()
x,y = self.getXY()
return x,y
Я бы улучшил ваш код следующими способами:
make self.validate () возвращает 0, если результат не является положительным, так что вы можете изменить второй ряд более питоническим способом:
if not self.validate():
удалить промежуточныйx, y
переменных, изменив оператор возврата на:
return self.getXY()
Наконец, вы можете просто вызвать исключение внутри getXY()
и напрямую использовать этот метод в своем коде.