2015-05-17 4 views
0
def emailCheck(self): 
n=0 
(retcode, messages) = mail.search(None, '(UNSEEN)') 
if retcode == 'OK': 

    for num in messages[0].split() : 
     n=n+1 
     typ, data = mail.fetch(num,'(RFC822)') 
     for response_part in data: 
      if isinstance(response_part, tuple): 
       original = email.message_from_bytes(response_part[1]) 

       print (original['From']) 
       print (original['Subject']) 
       typ, data = mail.store(num,'+FLAGS','\\Seen') 
print (n) 

t = threading.Timer(10.0, emailCheck) 
t.start() 

Я пытаюсь задержать суб-процедуры с использованием threading.timer(), но я думаю, что ошибка связана с включением себя в скобках. Я использую PyQt, поэтому все это содержится в классе MainWindow.Использование threading.timer для задержки Подпроцедура

Ошибка:

Exception in thread Thread-1: 
Traceback (most recent call last): 
File "C:\Python33\lib\threading.py", line 637, in _bootstrap_inner 
self.run() 
File "C:\Python33\lib\threading.py", line 823, in run 
self.function(*self.args, **self.kwargs) 
TypeError: emailCheck() missing 1 required positional argument: 'self' 
+0

немогу = threading.Timer (10,0, self.emailCheck) ' – ekhumoro

+0

Если ответ ekhumoro в не решите проблему, можете ли вы добавить немного больше кода, который показывает, где функция/метод 'emailCheck' существует (если он находится в классе?) и где экземпляры таймера происходят в отношении функции/метода. Как бы то ни было, ваш текущий отступ затрудняет определение взаимосвязи между битами кода. –

ответ

Смежные вопросы