2017-01-22 1 views
0

with 문을 사용하는 경우 및 logout 메서드를 imap4 클래스에서 호출해야합니까?문과 imaplib을 함께 사용하면 닫기를 호출하고 로그 아웃해야합니다.

docs은 많은 문맥을 제공하지 않습니다.

버전 3.5에서 변경되었습니다. with 문의 지원이 추가되었습니다.

기타에서는 withexample이 아닌 두 가지 방법을 모두 호출합니다.

with imaplib.IMAP4_SSL(IMAP) as imap: 
    # Do some stuff 
    ... 
    imap.close() 
    imap.logout() 

아니면 여기 있나?

with imaplib.IMAP4_SSL(IMAP) as imap: 
    # Do some stuff 
    ... 

답변

1

IMAP4.__exit__ 전화 logout :

def __exit__(self, *args): # from imaplib.py 
    try: 
     self.logout() 
    except OSError: 
     pass 

그래서 당신은 단지합니다 (with 블록 외부) CLOSE 호출해야합니다

with imaplib.IMAP4_SSL(IMAP) as imap: 
    # Do some stuff 
    imap.close() 
+1

이상하다 그. 나는 그들이 왜 그 중 한 가지 방법만을 부르는 지 궁금해. 문서는 로그 아웃하기 전에 닫기를 호출하는 것이 좋습니다. 그리고 왜 내가 소스를 직접 확인하지 않았는지 모르겠다. 그래서 나를 불타 지 않은 것에 대해 감사한다. 너무 많은 시간을 똑바로 코딩하고 있습니다. : - / – James

관련 문제