[Tutor] How to pass multiple variables in callback function?
Kent Johnson
kent37 at tds.net
Wed Dec 6 04:21:42 CET 2006
Alan Gauld wrote:
> "Asrarahmed Kadri" <ajkadri at googlemail.com> wrote
>
>> I mean to say that suppose I have two lists, and I want to pass them
>> to the
>> event handling function. Is that possible using bind?
>
> Not answering your question directly but you can do
> it with a lambda expression.
>
> def myfunc(l1,l2):
> # the func I want to use
>
> foo = lambda p1=list1, p2=list2: myfunc(p1,p2)
> bind(e,foo)
>
> or just
>
> bind(e,lambda p1=list1, p2=list2: myfunc(p1,p2))
>
> Obviously(?) list1 and list2 need to be in the same scope as
> the lambda expression!
Unless the bind() is in a loop that is rebinding list1 and list2, the
named parameters are not needed since nested scopes were introduced in
Python 2.1, you can just write
bind(e,lambda: myfunc(list1, list2))
Kent
More information about the Tutor
mailing list