title: Python - missing positional argument
body: <p>I am trying to learn a bit about threading by building some code  that will maintain a list and eventually send values from that list to a to-be-created function.    When I call <code>QueryReport.add</code> I get the error <code>TypeError: add() missing 1 required positional argument: 'user'</code>.  I am trying to pass in <code>report</code> and <code>user</code> list values.  It is my belief the <code>add</code> method needs <code>self</code> but that <code>self</code> for some reason seems to be throwing off the call I made because now I dont have the right number of positional aruguments.  In many other code examples I see methods defined with <code>self</code> and two other values with the idea that when the mthod is called two values are passed.  Any thoughts on what I am doing wrong?  Since I cant get past this syntax error, is there anything else as blantly wrong? </p>
  
  <pre><code>from threading import *
  
  class QueueReport(Thread):
    def __init__(self):
      Thread.__init__(self)
      self.reports_to_call = []
  
    def add(self, report, user):
      self.reports_to_call.append([report, user])
      print("Added Value")
  
    def run(self):
      print("Running")
      #print(reports_to_call)
      #will loop and send values from this list to another function
  
  
  if __name__ == '__main__':
    t1 = QueueReport()
    t1.run()
  
    QueueReport.add("mainreport", "user")
  </code></pre>