Como o python impede que uma classe seja subclassificada? [duplicado]
Esta questão já tem uma resposta aqui:
Aulas finais em Python 3.x- algo que Guido não está me dizendo? 4 respostasMe deparei com o seguinte nodocs python:
bool ([x])
Converta um valor para um booleano, usando o procedimento de teste de verdade padrão. Se x for falso ou omitido, isso retornará False; caso contrário, retorna True. bool também é uma classe, que é uma subclasse de int.Bool de classe não pode ser subclassificado ainda. Suas únicas instâncias são Falso e Verdadeiro.
Eu nunca na minha vida queria subclassebool
, mas naturalmente eu imediatamente tentei, e com certeza:
>>> 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
Então, a pergunta: como isso é feito? E posso aplicar a mesma técnica (ou outra diferente) para marcar minhas próprias aulas comofinal
, ou seja, para evitar que eles sejam subclassificados?