Heim >Backend-Entwicklung >Python-Tutorial >Python-Funktion dir()-Funktion
Sie können die integrierte dir-Funktion verwenden, um moduldefinierte Bezeichner aufzulisten. Zu den Bezeichnern gehören Funktionen, Klassen und Variablen.
Wenn Sie dir() einen Modulnamen angeben, wird eine Liste der vom Modul definierten Namen zurückgegeben. Wenn keine Argumente angegeben werden, wird eine Liste der im aktuellen Modul definierten Namen zurückgegeben.
Schauen wir uns zunächst die Verwendung von dir im Eingabe-Systemmodul an. Wir sehen, dass es eine riesige Liste von Eigenschaften enthält.
Als nächstes verwenden wir die dir-Funktion, ohne ihr ein Argument zu übergeben – standardmäßig gibt sie die Eigenschaftenliste des aktuellen Moduls zurück. Beachten Sie, dass auch die importierten Module Teil der Liste sind.
Um die Wirkung von dir zu beobachten, definieren wir eine neue Variable a, weisen ihr einen Wert zu und überprüfen dann dir. Wir stellen fest, dass der Liste derselbe Wert wie oben hinzugefügt wird. Wir verwenden die del-Anweisung, um die Variable/Eigenschaft im aktuellen Modul zu löschen, und diese Änderung spiegelt sich erneut in der Ausgabe von dir wider.
Eine kleine Anmerkung zu del – diese Anweisung wird verwendet, um eine Variable/einen Namen nach der Ausführung zu löschen. In diesem Beispiel, del a, können Sie die Variable a nicht mehr verwenden – es wird so sein, als ob sie nie existiert hätte.
Diese Funktion wird in allen Versionen unterstützt und ist weiterhin in Python3 verfügbar.
>>> import struct >>> dir() # show the names in the module namespace ['__builtins__', '__doc__', '__name__', 'struct'] >>> dir(struct) # show the names in the struct module ['Struct', '__builtins__', '__doc__', '__file__', '__name__', '__package__', '_clearcache', 'calcsize', 'error', 'pack', 'pack_into', 'unpack', 'unpack_from'] >>> class Shape(object): def __dir__(self): return ['area', 'perimeter', 'location'] >>> s = Shape() >>> dir(s) ['area', 'perimeter', 'location']
dir([object])
Gibt ohne Argumente die Liste der Namen im aktuellen zurück Lokaler Bereich. Versuchen Sie, mit einem Argument eine Liste gültiger Attribute für dieses Objekt zurückzugeben.
Wenn das Objekt eine Methode namens __dir__() hat, wird diese Methode aufgerufen und muss die Liste der Attribute zurückgeben Ermöglicht Objekten, die eine benutzerdefinierte Funktion __getattr__() oder __getattribute__() implementieren, die Art und Weise anzupassen, wie dir() ihre Attribute meldet.
Wenn das Objekt __dir__() nicht bereitstellt, versucht die Funktion ihr Bestes, um Informationen zu sammeln Das __dict__-Attribut des Objekts, sofern definiert, und sein Typobjekt. Die resultierende Liste ist nicht unbedingt vollständig und kann ungenau sein, wenn das Objekt über ein benutzerdefiniertes __getattr__() verfügt.
Der Standardmechanismus von dir() verhält sich anders mit unterschiedlichen Objekttypen, da versucht wird, möglichst relevante und nicht vollständige Informationen zu liefern:
Wenn es sich bei dem Objekt um ein Modulobjekt handelt, enthält die Liste die Namen der Modulattribute.
Wenn das Objekt ein Typ- oder Klassenobjekt ist, enthält die Liste die Namen seiner Attribute und rekursiv der Attribute seiner Basen.
Andernfalls enthält die Liste die Namen der Attribute des Objekts, also die Namen seiner der Attribute der Klasse und rekursiv der Attribute der Basisklassen ihrer Klasse.
Das obige ist der detaillierte Inhalt vonPython-Funktion dir()-Funktion. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!