Ich möchte eine Klasse haben, die einen IMAP-Verbindung und verwenden Sie es mit einer with
Aussage darstellt, wie folgt:Schließen einer Verbindung mit einer `with` Aussage
class IMAPConnection:
def __enter__(self):
connection = imaplib.IMAP4_SSL(IMAP_HOST)
try:
connection.login(MAIL_USERNAME, MAIL_PASS)
except imaplib.IMAP4.error:
log.error('Failed to log in')
return connection
def __exit__(self, type, value, traceback):
self.close()
with IMAPConnection() as c:
rv, data = c.list()
print(rv, data)
Natürlich scheitert dies seit IMAPConnections
close
kein Attribut hat. Wie kann ich die Verbindung speichern und an die __exit__
-Funktion übergeben, wenn die with
-Anweisung abgeschlossen ist?
Ha, Gotcha. Danke! – mart1n
Ich fügte einige weitere Erklärung in meine Antwort. Hoffe, es ist hilfreich –