Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > comp.lang.python > #18647
| 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) |
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 | Next — Previous in thread | Next in thread | Find similar | Unroll 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