crazy lambdas
Steven D. Majewski
sdm7g at virginia.edu
Tue Feb 13 22:32:13 EST 2001
On Wed, 14 Feb 2001, Dan Parisien wrote:
> I want to do this
>
> e.callbacks.append(lambda d=dict, p=person: del d[p])
>
> # .... later
>
> e.trigger() #deletes
> ---
> those who use lambdas alot will notice my mistake. I, however, do not know
> what I am doing wrong. I think it has something to do with the fact 'del
> d[p]' doesn't have a value...
No -- the problem is that 'lambda' expressions take an expression
and 'del' is a statement in the python grammar.
You'll get the same error if you try: 'lambda x: import sys' --
The problem is 'del' , not 'd[p]' .
> Is it possible to do what I want (make a custom one-time-use function that
> is called much later and deletes a key from a dictionary)?
I think the more pythonic way to do this would be to subclass
UserDict and make a method that deletes the keys.
---| Steven D. Majewski (804-982-0831) <sdm7g at Virginia.EDU> |---
---| Department of Molecular Physiology and Biological Physics |---
---| University of Virginia Health Sciences Center |---
---| P.O. Box 10011 Charlottesville, VA 22906-0011 |---
"All operating systems want to be unix,
All programming languages want to be lisp."
More information about the Python-list
mailing list