title: Using threading.timer to delay sub-procedure
body: <pre><code>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()
  </code></pre>
  
  <p>I am trying to delay the sub-procedure using threading.timer(), but I think the error is to do with the inclusion of self in the brackets. I am using PyQt so all of this is contained within the class MainWindow.</p>
  
  <p>The error:</p>
  
  <pre><code>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'
  </code></pre>