[Python-ideas] Add __parent__ to all classes, functions, and modules

Neil Girdhar mistersheik at gmail.com
Sun Oct 5 23:18:51 CEST 2014


On Sun, Oct 5, 2014 at 5:11 PM, Benjamin Peterson <benjamin at python.org>
wrote:

> Neil Girdhar <mistersheik at ...> writes:
>
> >
> >
> >
> > On Sun, Oct 5, 2014 at 2:09 PM, Benjamin Peterson <benjamin <at>
> python.org> wrote:
> > Neil Girdhar <mistersheik <at> ...> writes:
> > >
> > > Many classes, functions, and modules are defined within the context of
> > another class, function, or module thereby forming a mathematical forest
> of
> > declarations.  It is possible to walk the descendants using __dict__ (for
> > classes and modules), but not the ancestors.  I propose adding __parent__
> > that would be filled at the same time that __qualname__ is filled in.This
> is unlikely to work.
> > 1) It turns basically everything into a cycle.
> >
> >
> > Why a cycle?
>
> Because, for example, the class would reference methods, which would
> reference the class.
>

Right.  I don't see what's wrong with that.  This already happens with the
__module__ member and the module's immediate children.

>
> >
> >
> > 2) __qualname__ is determined strictly from syntax, whereas __parent__
> could
> > not be. For example, what happens if I take a method from one class and
> set
> > it on another? __parent__ would not be well-defined.
> >
> >
> > I'm suggesting that parent be determined purely from declaration.  If you
> copy something, neither qualname nor parent would change unless you change
> them.
>
> It would mean your trick with super would only work for some methods.
>

It would only work for that are decorated in the usual way using @blah on
methods defined in the class.  If someone wants to copy that method
somewhere else then they'll have to update __parent__ themselves.

>
>
>
> _______________________________________________
> Python-ideas mailing list
> Python-ideas at python.org
> https://mail.python.org/mailman/listinfo/python-ideas
> Code of Conduct: http://python.org/psf/codeofconduct/
>
> --
>
> ---
> You received this message because you are subscribed to a topic in the
> Google Groups "python-ideas" group.
> To unsubscribe from this topic, visit
> https://groups.google.com/d/topic/python-ideas/94fTkAkjhCo/unsubscribe.
> To unsubscribe from this group and all its topics, send an email to
> python-ideas+unsubscribe at googlegroups.com.
> For more options, visit https://groups.google.com/d/optout.
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/python-ideas/attachments/20141005/38bf18f8/attachment-0001.html>


More information about the Python-ideas mailing list