title: TypeError in number of arguments passed to the _target()
body: <p>I want to run a method (speak) in a separate thread in python. Here is my code,</p>
  
  <pre><code>import threading
  
  class Example:
      def instruct(self, message_type):
          instruction_thread = threading.Thread(target=self.speak, args=message_type)
          instruction_thread.start()
  
      def speak(self, message_type):
          if message_type == 'send':
              print('send the message')
          elif message_type == 'inbox':
              print('read the message')
  
  
  e = Example()
  e.instruct('send')
  </code></pre>
  
  <p>But I get following error,</p>
  
  <pre><code>Traceback (most recent call last):
    File "C:\ProgramData\Anaconda3\envs\talkMail\lib\threading.py", line 914, in _bootstrap_inner
      self.run()
    File "C:\ProgramData\Anaconda3\envs\talkMail\lib\threading.py", line 862, in run
      self._target(*self._args, **self._kwargs)
  TypeError: speak() takes 2 positional arguments but 5 were given
  </code></pre>
  
  <p>What is the reason for this? can anyone clarify?</p>