Okay. How about this then:
class MM(type):
def __subclasscheck__(self, subclass):
return issubclass(subclass, type)
class M(type, metaclass=MM):
pass
class N(type):
pass
class C(metaclass=M):
pass
class D(metaclass=N):
pass
class E(C, D, metaclass=N):
pass
def main():
assert type(E) is N and issubclass(E, C)
main()
On 2019-12-31 3:16 p.m., Anders Hovmöller wrote:
You forgot something in that example I think because it doesn't actually do anything that
can "not work".
> On 31 Dec 2019, at 18:41, Soni L. <fakedme...@gmail.com> wrote:
>
> I would like this code to work, but currently python ignores __subclasscheck__ in many places where it checks for subclasses:
>
> class MM(type):
> def __subclasscheck__(self, subclass):
> return issubclass(subclass, type)
>
>
> class M(type, metaclass=MM):
> pass
>
>
> class N(type):
> pass
>
>
> class C(metaclass=M):
> pass
>
>
> class D(metaclass=N):
> pass
>
>
> class E(C, D, metaclass=N):
> pass
>
>
> def main():
> e = E()
>
>
> main()
> _______________________________________________
> Python-ideas mailing list -- python-ideas@python.org
> To unsubscribe send an email to python-ideas-le...@python.org
> https://mail.python.org/mailman3/lists/python-ideas.python.org/
> Message archived at
https://mail.python.org/archives/list/python-ideas@python.org/message/4F6IQD5QIMDZ6BNVB7EZQ2HYKQ3KLZB3/
> Code of Conduct: http://python.org/psf/codeofconduct/
_______________________________________________
Python-ideas mailing list -- python-ideas@python.org
To unsubscribe send an email to python-ideas-le...@python.org
https://mail.python.org/mailman3/lists/python-ideas.python.org/
Message archived at
https://mail.python.org/archives/list/python-ideas@python.org/message/FPPL2ZYKSA7HGC5BQ7CJVKDEAUWX67T5/
Code of Conduct: http://python.org/psf/codeofconduct/