[Python-Dev] PEP 8 modernisation

Ronald Oussoren ronaldoussoren at mac.com
Thu Aug 1 16:53:16 CEST 2013


On 1 Aug, 2013, at 16:48, Alexander Shorin <kxepal at gmail.com> wrote:

> Hi Ronald,
> 
> I understand this, but I'm a bit confused about fate of lambdas with
> such guideline since I see no more reasons to use them with p.9
> statement: long lines, code duplicate, no mock and well tests etc. -
> all these problems could be solved with assigning lambda to some name,
> but now they are looks useless (or useful only for very trivial cases)

That sounds about right :-)

Note that:

   f = lambda x: x ** 2

And:

   def f(x): return x ** 2

Are functionally equivalent and use the same byte code. The only differences
are that the lambda saves two characters in typing, and the "def" variant has
a more useful value in its __name__ attribute.

IMHO The lambda variant also looks uglier (even with the def variant on a single line).

Ronald

> --
> ,,,^..^,,,
> 
> 
> On Thu, Aug 1, 2013 at 6:41 PM, Ronald Oussoren <ronaldoussoren at mac.com> wrote:
>> 
>> On 1 Aug, 2013, at 16:34, Alexander Shorin <kxepal at gmail.com> wrote:
>> 
>>> Hi Nick,
>>> 
>>> On Thu, Aug 1, 2013 at 4:44 PM, Nick Coghlan <ncoghlan at gmail.com> wrote:
>>>> 9. Explicit guideline not to assign lambdas to names (use def, that's
>>>> what it's for)
>>> 
>>> Even for propose to fit chars-per-line limit and/or to remove
>>> duplicates (especially for sorted groupby case)?
>> 
>> When you do "name = lambda ..." you've created a named function, when you
>> do that your better of using def statement for the reasons Nick mentioned
>> in the PEP.
>> 
>> Ronald
>> 
>>> 
>>> --
>>> ,,,^..^,,,
>>> _______________________________________________
>>> Python-Dev mailing list
>>> Python-Dev at python.org
>>> http://mail.python.org/mailman/listinfo/python-dev
>>> Unsubscribe: http://mail.python.org/mailman/options/python-dev/ronaldoussoren%40mac.com
>> 



More information about the Python-Dev mailing list