[Python-Dev] __subclasses__() return order

Łukasz Langa lukasz at langa.pl
Sat May 25 15:49:04 CEST 2013


On 25 maj 2013, at 15:45, Antoine Pitrou <solipsis at pitrou.net> wrote:

> On Sat, 25 May 2013 15:26:58 +0200
> Antoine Pitrou <solipsis at pitrou.net> wrote:
> 
>> On Sat, 25 May 2013 06:23:56 -0700
>> Eli Bendersky <eliben at gmail.com> wrote:
>>> On Sat, May 25, 2013 at 6:18 AM, Antoine Pitrou <solipsis at pitrou.net> wrote:
>>> 
>>>> 
>>>> Hello,
>>>> 
>>>> In http://bugs.python.org/issue17936, I proposed making tp_subclasses
>>>> (the internal container implementing object.__subclasses__) a dict.
>>>> This would make the return order of __subclasses__ completely
>>>> undefined, while it is right now slightly predictable. I have never seen
>>>> __subclasses__ actually used in production code, so I'm wondering
>>>> whether someone might be affected by such a change.
>>>> 
>>>> Regards
>>>> 
>>> 
>>> Personally I never used it, but it's now explicitly documented as returning
>>> a list. Not sure what's the right thing to do here, but perhaps returning
>>> an OrderedDict can eliminate the order problem?
>> 
>> It would still return a list.
> 
> I guess I should explain myself more clearly: __subclasses__() already
> computes its result on-the-fly (it must weed out dead weakrefs) (*). So
> the visible behaviour of __subclasses__ wouldn't change, except for
> ordering.

+1

Makes sense to me. As currently defined, you cannot rely on the item order anyway.

-- 
Best regards,
Łukasz Langa

WWW: http://lukasz.langa.pl/
Twitter: @llanga
IRC: ambv on #python-dev

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/python-dev/attachments/20130525/29da635c/attachment.html>


More information about the Python-Dev mailing list