#python #function #syntax #if-statement
#python #функция #синтаксис #if-оператор
Вопрос:
У меня есть следующий код, который является частью моего класса электронной почты, который я использую в своих программах. В настоящее время я запускаю функцию quit независимо от того, было ли установлено соединение с SMTP-сервером в функции connect. Я знаю, что мог бы поместить функцию quit внутри инструкции try после отправки электронного письма, но я хотел бы выяснить, как написать код, чтобы сказать эквивалент «если соединение с сервером открыто, закройте его». Каков наилучший способ написать это на Python?
Спасибо!
def connect(self, headers, msg):
try:
self.server.starttls()
try:
self.server.login(self.usrname,self.pswd)
try:
self.server.sendmail(self.sendfrom, self.sendto, headers "rnrn" msg)
except Exception as sendmailfail:
print(sendmailfail)
except Exception as emailfail:
print (emailfail)
except Exception as error:
print(error)
def quit(self):
self.server.quit()
print("The SMTP connection is closed")
first = GmailSmpt('x','y','z','zz')
x , y = first.message()
first.connect(x,y)
first.quit()
Ответ №1:
Вам нужно закончить раздел «Ошибки и исключения» в руководстве.
try:
possibly_fail()
except ...:
handle_exception()
else:
no_exceptions()
finally:
always_run_this()
Комментарии:
1. Спасибо! Я вставил предложение else в свой оператор connection try, и оно работает.