On 10 November 2017 at 18:39, Koos Zevenhoven <k7ho...@gmail.com> wrote:
> On Wed, Sep 27, 2017 at 12:28 PM, Ivan Levkivskyi <levkivs...@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
_______________________________________________ Python-ideas mailing list Python-ideas@python.org https://mail.python.org/mailman/listinfo/python-ideas Code of Conduct: http://python.org/psf/codeofconduct/