Emulating Final classes in Python
ethan at stoneleaf.us
Tue Jan 17 02:25:58 EST 2017
On 01/16/2017 11:05 PM, Steven D'Aprano wrote:
> I wish to emulate a "final" class using Python, similar to bool:
> py> class MyBool(bool):
> ... pass
> Traceback (most recent call last):
> File "<stdin>", line 1, in <module>
> TypeError: type 'bool' is not an acceptable base type
> It doesn't have to be absolutely bulletproof, but anyone wanting to subclass my
> class should need to work for it, which hopefully will tell them that they're
> doing something unsupported.
> Any hints?
Use a metaclass. Have the metaclass create the first one, and refuse to make any others.
More information about the Python-list