1-line idiom to replace if blocks
Chad Netzer
cnetzer at mail.arc.nasa.gov
Fri Jan 24 16:29:54 EST 2003
More information about the Python-list mailing list
Fri Jan 24 16:29:54 EST 2003
- Previous message (by thread): 1-line idiom to replace if blocks
- Next message (by thread): 1-line idiom to replace if blocks
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
On Friday 24 January 2003 09:10, Robin Munn wrote: > # The idiom [false_val,true_val][condition] is equivalent to the > # C idiom (condition ? true_val : false_val)... > register_callback(1, lambda retval: ['Error','OK'][bool(retval)]) > register_callback(2, lambda retval: ['Error','OK'][bool(retval)]) > register_callback(3, lambda retval: ['Error','OK'][bool(retval)]) > register_callback(4, lambda retval: ['Error','OK'][bool(retval)]) > register_callback(5, lambda retval: ['Error','OK'][bool(retval)]) > register_callback(6, lambda retval: ['Error','OK'][bool(retval)]) I think this technique is valid, SOLELY because you preceeded it with the comment that explains it's use. Given the line space you save below, the extra lines used to comment the technique are almost mandatory (ie. it may save you or someone else a few minutes of time in the future.) But having the idiom interspersed throughout code in random places is likely to cause more troubles than it is worth, at least down the line (there will be someone who wastes time figuring it out, more than was ever saved using it piecemeal). I think the general principal applies elsewhere. I've often used lambda's not like the above, and the economy of expression made it worth it, since I repeated many time in one place. But then you could refactor the above code even further to have a callback factory, which might even be clearer in the long run. (or just a single named function for the specific case above, since all your callbacks do exactly the same thing) -- Bay Area Python Interest Group - http://www.baypiggies.net/ Chad Netzer (any opinion expressed is my own and not NASA's or my employer's)
- Previous message (by thread): 1-line idiom to replace if blocks
- Next message (by thread): 1-line idiom to replace if blocks
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
More information about the Python-list mailing list