Einstein summation notation

Ethan Furman ethan at stoneleaf.us
Fri Jul 17 17:20:41 CEST 2009

Paul Rubin wrote:
> Steven D'Aprano <steve at REMOVE-THIS-cybersource.com.au> writes:
>>def assemble_page(header, body, footer):
>>    if header or body or footer:
>>        do_lots_of_expensive_processing()
>>    else:
>>        do_nothing_gracefully()
> Why should the processing be expensive if all three fields are empty?
>>    if header or body or footer:
>>is a huge improvement over:
>>    if (header != '') or (body != '') or (footer != ''):
> Doesn't really seem any better.  There's always something like
>    if any(p != '' for p in [header, body, footer, otherthing1, ...])
> if the number of components gets larger.

Or if any(p for p in [header, body, footer, whatever, ...])

Which is even nicer!  :)  Particularly if header, et al, are some more 
complicated objects which don't easily generate strings, but do easily 
know whether they are Something or Nothing.

I suppose some of these discussions are based more on one's personal 
requirements (using several languages, just a couple, or just Python), 
and whether one wants to achieve Mastery of Python, or just be 
Proficient.  Neither choice is wrong, and wanting Mastery, of course, 
does not mean not wanting improvements, etc.  It does, however, require 
a deep understanding of not just the mechanics, but the philosophy of 
the language.

Mind you, I am nowhere near Mastery just yet (okay, okay, I have a 
_long_ way to go! ;), but I love the philosophy of Python, it's 
simplicity, and the *entirety* of the Zen.


More information about the Python-list mailing list