我碰到在python docs以下:python如何防止类被子类化?
布尔([X])
一个值转换为一个布尔值,使用标准的真理测试程序。如果x为假或省略,则返回False;否则它 返回True。 bool也是一个类,它是int的一个子类。 类 布尔不能被进一步子类。其唯一的实例是False,并且 是真的。
我从来没有在我的生活要继承bool
,但是自然我马上试了一下,果然:
>>> class Bool(bool):
pass
Traceback (most recent call last):
File "<pyshell#2>", line 1, in <module>
class Bool(bool):
TypeError: Error when calling the metaclass bases
type 'bool' is not an acceptable base type
所以,问题:如何做?我可以将同样的技术(或者不同的),以纪念我自己的类作为final
,即,以防止它们被子类?
为什么你不希望继承'bool'?你可以创建'10'子类来表示每个可能的布尔状态。 – jamylak
感谢@Martijn,这看起来像一个密切相关的问题。它在我的SO搜索过程中没有出现(我应该考虑在搜索条件中添加“final”)。 – alexis