On Mon, Apr 15, 2019 at 5:00 PM Michael Sullivan <su...@msully.net> wrote: > > I've submitted PEP 591 (Adding a final qualifier to typing) for discussion to > typing-sig [1].
I'm not on typing-sig [1] so I'm replying here. > Here's the abstract: > This PEP proposes a "final" qualifier to be added to the ``typing`` > module---in the form of a ``final`` decorator and a ``Final`` type > annotation---to serve three related purposes: > > * Declaring that a method should not be overridden > * Declaring that a class should not be subclassed > * Declaring that a variable or attribute should not be reassigned I've been meaning to start blocking subclassing at runtime (e.g. like [2]), so being able to express that to the typechecker seems like a nice addition. I'm assuming though that the '@final' decorator doesn't have any runtime effect, so I'd have to say it twice? @typing.final class MyClass(metaclass=othermod.Final): ... Or on 3.6+ with __init_subclass__, it's easy to define a @final decorator that works at runtime, but I guess this would have to be a different decorator? @typing.final @alsoruntime.final class MyClass: ... This seems kinda awkward. Have you considered giving it a runtime effect, or providing some way for users to combine these two things together on their own? -n [1] https://github.com/willingc/pep-communication/issues/1 [2] https://stackoverflow.com/a/3949004/1925449 -- Nathaniel J. Smith -- https://vorpus.org _______________________________________________ Python-Dev mailing list Python-Dev@python.org https://mail.python.org/mailman/listinfo/python-dev Unsubscribe: https://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com