Ich muss in der Lage sein, eine Markierung für eine Klasse ( nicht für eine Instanz einer Klasse) festzulegen, die für eine Unterklasse nicht sichtbar ist. Die Frage ist, ist es möglich, und wie würde ich es tun, wenn es ist?
Zur Veranschaulichung möchte ich etwas wie folgt haben:
%Vor% ... wobei hasattr(Master, "__flag__")
True
für Master
zurückgeben soll, aber False
für Child
. Ist das möglich? Wenn das so ist, wie? Ich möchte __flag__
nicht explizit in jedem Kind auf false setzen müssen.
Mein ursprünglicher Gedanke war, __metaclass__
zu definieren, aber ich habe nicht den Luxus, das zu tun, weil Master
von anderen Klassen und Metaklassen erbt, die ich nicht kontrolliere und die privat sind.
Letztendlich möchte ich einen Dekorateur schreiben, damit ich etwas tun kann wie:
%Vor%Sie waren sehr nah dran:
%Vor% Zwei führende Unterstriche ohne nachfolgende Unterstriche rufen Name Mangling auf, sodass das Attribut den Namen _Master__flag
hat. Daher, wenn Sie überprüfen:
es wird nur ist True
für Master
, nicht Child
.