[Python-ideas] PEP 560 (second post)
Ivan Levkivskyi
levkivskyi at gmail.com
Fri Nov 10 13:33:08 EST 2017
On 10 November 2017 at 18:39, Koos Zevenhoven <k7hoven at gmail.com> wrote:
> On Wed, Sep 27, 2017 at 12:28 PM, Ivan Levkivskyi <levkivskyi at gmail.com>
> wrote:
>
>>
>>
>
>> After creating the class,
>> the original bases are saved in ``__orig_bases__`` (currently this is also
>> done by the metaclass).
>>
>>
> Those are *still* bases, right, even if they are not in the mro? I'm not
> sure if this is a naming thing or something even more.
>
The objects that have __subclass_base__ method (proposed to rename to
__mro_entry__)
are removed from __bases__ attributed of the newly created class. Otherwise
they may cause a metaclass conflict.
One can however still call them syntactic (or static?) bases. For example
this is how it is going to be used by typing:
from typing import List
class Tokens(List[int]):
...
assert Tokens.__bases__ == (list,)
> NOTE: These two method names are reserved for exclusive use by
>> the ``typing`` module and the generic types machinery, and any other use
>> is
>> strongly discouraged.
>>
>
> Given the situation, that may be a good thing. But will it really work? I
> think it is also strongly discouraged to invent your own dunder method
> names, but people still do it.
>
Terry had a similar comment. I will "soften" this formulation in the next
revision of the PEP.
--
Ivan
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/python-ideas/attachments/20171110/f698c884/attachment.html>
More information about the Python-ideas
mailing list