Warum sind Python-Instanzmethoden aufrufbar, aber statische Methoden und Klassenmethoden nicht aufrufbar?
Ich habe Folgendes getan:
%Vor%Das Ergebnis ist:
%Vor% Technisch könnte dies daran liegen, dass das Instanzmethodenobjekt ein bestimmtes Attribut (nicht) auf eine bestimmte Art hat (möglicherweise __call__
). Warum eine solche Asymmetrie oder welchem Zweck dient sie?
Ich bin während des Erlernens von Python-Inspektions-Tools auf dieses Problem gestoßen.
Zusätzliche Anmerkungen von Kommentaren:
Die in den Kommentaren angegebene SO-Antwort besagt, dass die static / class-Methoden Deskriptoren sind , die nicht abrufbar sind. Jetzt bin ich neugierig, warum Deskriptoren nicht abrufbar gemacht werden, da Deskriptoren Klassen mit bestimmten Attributen (eines von __get__
, __set__
, __del___
) definiert sind.
Die Instanz ist der Container, in dem die Daten des Objekts in der Variablen self gespeichert sind.