Chris Angelico writes:
> I'm with Greg on this one, for the simple reason that a future
> language could have fewer restrictions than Python does, and therefore
> would become the only thing that offers "full MI", displacing other
> languages. It's a meaningless concept, unless there is some form of
> absolute completeness that can be attained (and if you go for that, NO
> language offers "full MI").
> 
> My view: If a class inherits two parents, in any meaning of the word
> "inherits" that follows the normal expectation that a subclass IS an
> instance of its parent class(es), then it's MI.
> 
> So if you have "class Foo(Spam, Ham):" and it is reasonable to treat a
> Foo instance as if it were a Spam instance *and* reasonable to treat a
> Foo instance as if it were a Ham instance, then it's MI.
> 
> Erroring out when there is a conflict is a restriction, but I would
> avoid the term "full MI" because it's more emotive than useful.

I agree with you 100%.

I think i would add that what should matter is that we can describe our 
experiences with accurate concepts, and not that we conduct ourselves based on 
the concepts we know. At least when talking about potential improvments.

Sticking to the way its done "just" because it's the way it's done helps 
stabilising the language, but it makes it possible to miss improvements.

Overall, if there's only valid reasons to implement a change, this change 
doesn't break anything and there's no valid reason not to implement it, and 
this change is not "full MI", fine, we're out of full MI, what's the big deal?
(I'm not saying i'm talking about my proposal here...)


I got an idea that *should* allow for some (keyword : some) of the changes i 
want without any breaks, i kinda wanna take the time to think about it, and 
once i'm a bit more sure of it, i'll talk about it in details.
Someone mentionned the "class A(B(C)):" syntax was already meaning something, 
i've tried a few things, but overall, most scenarios simply fail with this 
syntax today. The only one i could make work was "class A(namedtuple(...not a 
class...)):"
If anyone has any source / talks on that, i would love to read it. And if you 
have ever seen this kind of syntax used, let me know.
Someone mentionned they had a hard time tracking my exact proposal, i'll give 
an up to date proposal at some point too, i'll try to keep it short this time.

I also still need to do that survey to measure what peoples intuition are.
_______________________________________________
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/LE5TNQDHVW5FXKRGXPCTQTKYIHSMRDHD/
Code of Conduct: http://python.org/psf/codeofconduct/

Reply via email to