> Why would it require a metaclass? Rather than just: ... Because I want the following to be true:
``` x = Struct[x=int, y=str](...) assert isinstance(x, Struct) assert isinstance(x, Struct[x=int, y=str]) assert not isinstance(x, Struct[x=int, y=int]) ``` On Fri, Aug 14, 2020 at 5:27 PM David Mertz <me...@gnosis.cx> wrote: > > On Fri, Aug 14, 2020, 7:53 PM Caleb Donovick <donov...@cs.stanford.edu> > wrote: > >> > I don't see what that can possible get you that `Struct(x=int, y=str)` >> doesn't. >> >> Using `Struct(x=int, y=str)` requires a metaclass, where `Struct[x=int, >> y=str]` does not. >> > > Why would it require a metaclass? Rather than just: > > class Struct: > def __init__(self, **kws): ... > > Yes, that won't get you the MRO for T, but neither can __getitem__() on an > entirely different object Struct. > > A class factory is also an option, of course. > >
_______________________________________________ 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/S5II33XWAICKHHR47OCKVPKURKZRZGTU/ Code of Conduct: http://python.org/psf/codeofconduct/