Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.python > #18647

Re: Nested Function Question

References <14889cd9-f02b-4a81-9ccb-8fb8492e1091@n39g2000yqh.googlegroups.com> <CALwzidneNuQAD6i6rGrVxds482YckmmEY+HHR8q_HLKJOdheOA@mail.gmail.com>
Date 2012-01-07 10:18 -0500
Subject Re: Nested Function Question
From David Robinow <drobinow@gmail.com>
Newsgroups comp.lang.python
Message-ID <mailman.4513.1325949503.27778.python-list@python.org> (permalink)

Show all headers | View raw


On Fri, Jan 6, 2012 at 5:04 PM, Ian Kelly <ian.g.kelly@gmail.com> wrote:
> On Fri, Jan 6, 2012 at 2:46 PM, GZ <zyzhu2000@gmail.com> wrote:
>> Hi,
>>
>> I am reading the documentation of functools.partial (http://
>> docs.python.org/library/functools.html#functools.partial) and found
>> the following 'reference implementation' of functools.partial.
>>
>> def partial(func, *args, **keywords):
>>    def newfunc(*fargs, **fkeywords):
>>        newkeywords = keywords.copy()
>>        newkeywords.update(fkeywords)
>>        return func(*(args + fargs), **newkeywords)
>>    newfunc.func = func
>>    newfunc.args = args
>>    newfunc.keywords = keywords
>>    return newfunc
>>
>> I don't understand why the below 3 lines are needed:
>>
>>    newfunc.func = func
>>    newfunc.args = args
>>    newfunc.keywords = keywords
>>
>>
>> It is as if they are trying to prevent garbage collection, but I don't
>> get why it is needed. As long as something holds reference to newfunc,
>> because it in turn references keywords and args, nothing will be
>> freed. If nothing is referencing newfunc, then everything should be
>> freed.
>
> They exist for introspection.  The partial object has to store the
> function and arguments it was passed so that it can call it later, so
> as long as they're being stored anyway, why not make them visible?
I tend toward the minimalist end of the spectrum when it comes to code
commenting, but it seems to me this would be a good place for a few
words of explanation.

Back to comp.lang.python | Previous | NextPrevious in thread | Next in thread | Find similar | Unroll thread


Thread

Nested Function Question GZ <zyzhu2000@gmail.com> - 2012-01-06 13:46 -0800
  Re: Nested Function Question Ian Kelly <ian.g.kelly@gmail.com> - 2012-01-06 15:04 -0700
  Re: Nested Function Question David Robinow <drobinow@gmail.com> - 2012-01-07 10:18 -0500
  Re: Nested Function Question 88888 Dihedral <dihedral88888@googlemail.com> - 2012-01-07 20:43 -0800

csiph-web