Questa domanda si basa su molte ipotesi. Se una ipotesi è sbagliata, allora l'intera faccenda cade. Sono ancora relativamente nuovo a Python e sono appena entrato nella fase curiosa/esplorativa.Classi finali in Python 3.x- qualcosa che Guido non mi sta dicendo?
È a mia conoscenza che Python non supporta la creazione di classi che non possono essere sottoclasse (classi finali). Tuttavia, mi sembra che la classe bool in Python non possa essere sottoclassata. Questo ha senso quando si considera l'intento della classe bool (perché si suppone che il bool abbia due valori: true e false), e sono contento di ciò. Quello che voglio sapere è come questa classe è stata contrassegnata come finale.
Quindi la mia domanda è: come ha fatto esattamente Guido a prevenire la sottoclasse di 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
questione connessa:Why I can't extend bool in Python?
link alla documentazione: http://docs.python.org /c-api/typeobj.html#Py_TPFLAGS_BASETYPE –