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