Python-Daten und Nicht-Daten-Deskriptoren
GemäßPythons Dokumentation,
Datenbeschreibungen mit__set__()
und__get__()
Defined überschreibt immer eine Neudefinition in einem Instanzwörterbuch.
Ich habe kein Problem damit, diesen Satz zu verstehen, aber kann mir jemand erklären, warum eine solche Regel gilt? Wenn ich ein Attribut in einem Instanzwörterbuch überschreiben möchte, muss ich das schon tunausdrücklich (inst.__dict__["attr"] = val
), als naivinst.attr = val
würde den Deskriptor anrufen__set__
Methode, die das Attribut im Instanzwörterbuch (normalerweise) nicht überschreibt.
edit: nur um es klar zu machen, ich verstehe was passiert, meine frage ist, warum eine solche regel eingeführt wurde.