Python threading.Thread accepts callable object as a target.
So when you do this threading.Thread(target=getin(),args=(aa)).. Ideally you are passing passing the return value of getin being called with no arguments. Since getin requires 1 argument this is an error.
You should pass like below...
threading.Thread(target=getin,args=(aa, ))
Also, Thread class accepts tuple as args...
When you use parentheses without any comma inside Python just yields the value given inside....If you need a tuple with one value you've to add a comma inside.
Parentheses without any comma inside gives you a tuple object with empty items like below..
>>> a = ()
>>> a
()
>>> type(a)
<type 'tuple'>
If you use parentheses having one value inside without any comma you'll endup getting like below..
>>> b = (1)
>>> type(b)
<type 'int'>
If you need a tuple having one value you've to add a comma inside..like below.
>>> c = (1,)
>>> type(c)
<type 'tuple'>