How do we pass default argument value to create thread object?

Zachary Ware zachary.ware+pylist at gmail.com
Wed Mar 12 10:12:39 EDT 2014


On Wed, Mar 12, 2014 at 8:09 AM, Piyush Verma <114piyush at gmail.com> wrote:
> Hi,
>
> I am using Thread class to create threads.
> <CODE>
> thread = threading.Thread(target=Fun, args=[arg1, arg2, arg3="val"])
> thread.start()
> </CODE>
>
> This code is throwing compilation error(Ipython).
> In [19]: import threading
>
> In [20]: def Fun(agr1, arg2, arg3=None):
>    ....:     pass
>    ....:
>
> In [21]: thread = threading.Thread(target=Fun, args=[arg1, arg2,
> arg3="val"])
> ------------------------------------------------------------
>    File "<ipython console>", line 1
>      thread = threading.Thread(target=Fun, args=[arg1, arg2, arg3="val"])
>                                                                  ^
> SyntaxError: invalid syntax
>
> How do we pass the value to default arguments while creating thread object?

Use the 'kwargs' argument:

   thread = threading.Thread(target=Fun, args=[1, 2], kwargs={'arg3': "val"})

See http://docs.python.org/3.4/library/threading#threading.Thread for more info.

Hope this helps,
-- 
Zach



More information about the Python-list mailing list