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

2014-03-12 Thread Piyush Verma
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?

Regards,
~Piyush
Facebook https://www.facebook.com/piyushkv1
Twitterhttps://twitter.com/SocializePiyush
-- 
https://mail.python.org/mailman/listinfo/python-list


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

2014-03-12 Thread Jean-Michel Pichavant

- Original Message - 

 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?

 Regards,
 ~Piyush
 Facebook Twitter

Hi,

try something like

thread = threading.Thread(target=Fun, args=(val1, val2), 
kwargs={arg3:val3})

This will call
Fun(val1, val2, arg3=val3)

Browse the python tutorial for details on arguments and keyword arguments.

Cheers,

JM


-- IMPORTANT NOTICE: 

The contents of this email and any attachments are confidential and may also be 
privileged. If you are not the intended recipient, please notify the sender 
immediately and do not disclose the contents to any other person, use it for 
any purpose, or store or copy the information in any medium. Thank you.
-- 
https://mail.python.org/mailman/listinfo/python-list


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

2014-03-12 Thread Zachary Ware
On Wed, Mar 12, 2014 at 8:09 AM, Piyush Verma 114piy...@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
-- 
https://mail.python.org/mailman/listinfo/python-list