Emulating Final classes in Python

Ethan Furman 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.
--
~Ethan~


More information about the Python-list mailing list

AltStyle によって変換されたページ (->オリジナル) /