title: Python: TypeError: argument after * must be a sequence
body: <p>I have this piece of code in which I try to send an UDP datagram in a new thread</p>
  
  <pre><code>import threading, socket
  
  address = ("localhost", 9999)
  
  
  def send(sock):
      sock.sendto("Message", address)
      print "sent"
  
  s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
  threading.Thread(target=send, args=(s)).start()
  </code></pre>
  
  <p>But when I try to give the socket as an argument to the function, a TypeError exception is thrown:</p>
  
  <pre><code>Exception in thread Thread-1:
  Traceback (most recent call last):
    File "/usr/lib/python2.7/threading.py", line 810, in __bootstrap_inner
      self.run()
    File "/usr/lib/python2.7/threading.py", line 763, in 
      self.__target(*self.__args, **self.__kwargs)
  TypeError: send() argument after * must be a sequence, not _socketobject
  </code></pre>
  
  <p>What that means?</p>