У меня есть класс, который выполняет некоторые проверки здравомыслия внутри __init__
. Если некоторые из них не работают, я хочу прекратить обработку __init__
.Как «завершать» внутри init
Пример:
class MyClass(object):
def __init__(self, hostname, conn=None, user=None, passwd=None):
# SNIP (code to check if connection was supplied, if not user/pass)
if not conn.is_logged_in():
if not conn.Login():
raise LoginFailed("Failed to login to '%s'" % hostname)
return
# some code that relies on valid connection
Если я хочу прекратить обработку после первой проверки вменяемости, как это может быть сделано? Фактический код, который я пишу, устанавливает соединение с службой REST, поэтому моя первая проверка работоспособности - это проверить предоставленное соединение или, если вы указали вместо этого имя пользователя и пароль, установите соединение в __init__()
.
Очевидно, что если соединение не выполняется, я не хочу выполнять последующие задачи, которые полагаются на соединение. По сути, я хочу, чтобы создание объекта потерпело неудачу.
Любые предложения? Благодарю.
Что случилось с поднятием исключения? – dm03514
Вы имеете в виду что-то конкретное от «terminate»? Вы уже создаете исключение, если не можете войти в систему; какое другое поведение вы ищете помимо этого? –
Я с @ dm03514. Похоже, это именно то, для чего нужны исключения. –