[Python-Dev] PEP 8: Discourage named lambdas?

Nick Coghlan ncoghlan at gmail.com
Sat May 3 12:27:27 CEST 2008


Samuele Pedroni wrote:
> I found only an example in my personal recent code:
> 
> START = "<!-- *db-payload-start* -->"
> END = "<!-- *db-payload-end* -->"
> TITLEPATTERN = lambda s: "<title>%s</title>" % s
> 
> this three are later used in a very few .find() and .replace() 
> expressions in the same module. I suppose my point is that while I agree 
> it should be discouraged and is really silly to do it for the few chars 
> gain, it can be used to some effect in very rare cases.

The way that's written currently, I think I could *very* easily miss the 
fact that TITLEPATTERN is a callable while glancing over the code (and 
be very confused if I later saw it being called or passed as a callback).

Converting to a def makes it obvious that one of these lines is not like 
the others:

START = "<!-- *db-payload-start* -->"
END = "<!-- *db-payload-end* -->"
def TITLEPATTERN(s): return "<title>%s</title>" % s

Cheers,
Nick.


-- 
Nick Coghlan   |   ncoghlan at gmail.com   |   Brisbane, Australia
---------------------------------------------------------------
             http://www.boredomandlaziness.org


More information about the Python-Dev mailing list