I don't like final. If I do, I don't do crazy subclassing and monkey-patching for fun but to achieve something in a restricted environment, for instance because I cannot use the latest version of the patched library.
Python excels at this kind of code patching and introspection. Even "private" methods can be called or overwritten. That's good. Adding @final only makes it harder to deactivate this flag before applying some "runtime patch".
Python excels at this kind of code patching and introspection. Even "private" methods can be called or overwritten. That's good. Adding @final only makes it harder to deactivate this flag before applying some "runtime patch".