Why would I get a TypeEror?
Steven Bethard
steven.bethard at gmail.com
Sun Jan 16 17:48:00 EST 2005
Stian Soiland wrote:
> På 14. jan 2005 kl. 22:58 skrev Steven Bethard:
>
> (Any mac users? How do I fix this to appear in Norwegian? =)
>
>> Note that if you're not comfortable with short-circuiting behavior,
>> you can also code this using lazy evaluation:
>>
>> (lambda: 1/x, lambda: 1.0e99)[x==0]()
>
>
> .. and people wonder why so many Python people want to get rid of Lambda =)
>
Heh heh. No I don't. ;)
In fact, I don't ever use lambdas in any of my own "real" code. But I
don't mind being a little dirty when I post to c.l.py. ;) I guess I
could have written this as:
def inverse():
return 1/x
def largenum():
return 1.0e99
b = (inverse, largenum)[x==0]()
but I'm usually too lazy, and it's an ugly solution anyway, compared to
the simple one which the OP was apparently trying to avoid:
if x != 0:
b = 1/x
else:
b = 1.0e99
=)
Steve
More information about the Python-list
mailing list