我碰到在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