W jaki sposób python zapobiega podklasowaniu klasy? [duplikować]
To pytanie ma już tutaj odpowiedź:
Końcowe zajęcia w Pythonie 3.x - coś, co Guido mi nie mówi? 4 odpowiedziNatknąłem się na następujące wdokumenty Pythona:
bool ([x])
Konwertuj wartość na Boolean, używając standardowej procedury testowania prawdy. Jeśli x jest fałszywe lub pominięte, to zwraca False; w przeciwnym razie zwraca True. bool jest również klasą, która jest podklasą int.Bool klasy nie może być dalej podklasowany. Jego jedynymi przypadkami są Fałsz i Prawda.
Nigdy w życiu nie chciałem podklasybool
, ale naturalnie natychmiast to wypróbowałem i na pewno:
>>> 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
Tak więc pytanie: jak to się robi? I czy mogę zastosować tę samą technikę (lub inną) do oznaczania własnych klas jakofinal
, tj. aby nie dopuścić do ich subklasy?