Final classes in Python 3.x- something Guido isn't telling me?
Posted
by GlenCrawford
on Stack Overflow
See other posts from Stack Overflow
or by GlenCrawford
Published on 2010-05-13T08:35:43Z
Indexed on
2010/05/13
8:44 UTC
Read the original article
Hit count: 335
python
|inheritance
This question is built on top of many assumptions. If one assumption is wrong, then the whole thing falls over. I'm still relatively new to Python and have just entered the curious/exploratory phase.
It is my understanding that Python does not support the creating of classes that cannot be subclassed (final classes). However, it seems to me that the bool class in Python cannot be subclassed. This makes sense when the intent of the bool class is considered (because bool is only supposed to have two values: true and false), and I'm happy with that. What I want to know is how this class was marked as final.
So my question is: how exactly did Guido manage to prevent subclassing of bool?
>>> class TestClass(bool):
pass
Traceback (most recent call last):
File "<pyshell#2>", line 1, in <module>
class TestClass(bool):
TypeError: type 'bool' is not an acceptable base type
Related question: http://stackoverflow.com/questions/2172189/why-i-cant-extend-bool-in-python
© Stack Overflow or respective owner