[Python-Dev] PEP 8 modernisation
Ronald Oussoren
ronaldoussoren at mac.com
Thu Aug 1 17:11:00 CEST 2013
On 1 Aug, 2013, at 17:03, Alexander Shorin <kxepal at gmail.com> wrote:
> ...and, if so, why lambda's?(: Without backward compatibility point I
> see that they are getting "unofficially" deprecated and their usage is
> dishonoured.
They are still usefull for simple functions that you use in one place,
such as the key argument to sorted. By the time you assign a name to the function
and give it unittests you may as well use a def-statement and let the
function know it its own name.
Ronald
>
> --
> ,,,^..^,,,
>
>
> On Thu, Aug 1, 2013 at 6:53 PM, Ronald Oussoren <ronaldoussoren at mac.com> wrote:
>>
>> 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