dir ruft __dir__
method auf, wenn es vorhanden ist,
aus der Python-Dokumentation :
dir ([object]) ¶ Gibt ohne Argumente die Liste der Namen in der aktueller lokaler Geltungsbereich Versuchen Sie mit einem Argument, eine Liste von gültige Attribute für dieses Objekt.
Wenn das Objekt eine Methode namens
__dir__()
hat, wird diese Methode aufgerufen und muss die Liste der Attribute zurückgeben. Dies ermöglicht Objekte, die Implementieren Sie eine benutzerdefinierte Funktion__getattr__()
oder__getattribute__()
auf Passen Sie die Art und Weise an, in derdir()
ihre Attribute meldet.Wenn das Objekt
__dir__()
nicht bereitstellt, versucht die Funktion ihr Bestes um Informationen aus dem__dict__
-Attribut des Objekts zu erhalten, wenn definiert und von seinem Typ Objekt. Die resultierende Liste ist nicht ist notwendigerweise vollständig und kann ungenau sein, wenn das Objekt a hat Benutzerdefiniert__getattr__()
.
Es lohnt sich, darauf hinzuweisen, dass die __dir__
für viele Objekte nicht angepasst werden kann. Wenn Sie sie also direkt aufrufen, gibt es keine Möglichkeit, einen Shim / Wrapper dorthin zu legen.
Es ist einfach, das eingebaute dir
zu ersetzen und ihm bei Bedarf spezielle Kräfte zu geben. Tricks wie diese können beim Debuggen sehr nützlich sein.
Tags und Links python