On Tue, Jan 5, 2021 at 8:50 AM Ethan Furman <ethan@stoneleaf.us> wrote:
[...]
Perhaps `ABCMeta` can be easily fixed -- it is calling the function that records all abstract methods, etc., after the
`type.__new__` call; can it be called before?

Why do you keep insisting that this is "broken"? Yes, you have identified a way that an abstract class can be instantiated *by its own constructor* despite being abstract. I think that's not something to get worked up about. As the doctor in the old joke said, "then don't do that." Or perhaps this is one of those situations where we're all still considered to be consenting adults -- surely abstract classes and methods are meant as a way to help users do the right thing, not as an absolute guarantee.

--
--Guido van Rossum (python.org/~guido)