Heim > Backend-Entwicklung > Python-Tutorial > Python – dir()-Funktion

Python – dir()-Funktion

高洛峰
Freigeben: 2016-10-17 14:51:42
Original
1233 Leute haben es durchsucht

dir()-Funktion

Chinesische Beschreibung:

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 importierten 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.

Version:

Diese Funktion wird in allen Versionen unterstützt und ist weiterhin in Python3 verfügbar.

Codebeispiel:

>>> 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']
Nach dem Login kopieren

Englische Beschreibung:

dir([object])

Ohne Argumente die Liste der Namen im aktuellen lokalen Bereich zurückgeben. Versuchen Sie mit einem Argument, eine Liste gültiger Attribute für dieses Objekt zurückzugeben.

Wenn das Objekt eine Methode namens __dir__() hat, diese Methode wird aufgerufen und muss die Liste der Attribute zurückgeben. Dadurch können Objekte, die eine benutzerdefinierte Funktion __getattr__() oder __getattribute__() implementieren, die Art und Weise anpassen, wie dir() ihre Attribute meldet.

Wenn das Objekt __dir__ nicht bereitstellt. () versucht die Funktion ihr Bestes, Informationen aus dem __dict__-Attribut des Objekts (sofern definiert) und aus seinem Typobjekt zu sammeln. Die resultierende Liste ist nicht unbedingt vollständig und kann ungenau sein, wenn das Objekt über ein benutzerdefiniertes __getattr__() verfügt.

Der standardmäßige dir()-Mechanismus verhält sich bei verschiedenen Objekttypen unterschiedlich, da er versucht, die relevantesten und nicht die vollständigen Informationen zu erzeugen:

Wenn das Objekt ein Modulobjekt ist, enthält die Liste die Namen der Attribute des Moduls.

Wenn das Objekt ein Typ- oder Klassenobjekt ist, enthält die Liste die Namen seiner Attribute und rekursiv der Attribute seiner Basen.

Andernfalls die Die Liste enthält die Attributnamen des Objekts, die Namen der Attribute seiner Klasse und rekursiv die Attribute der Basisklassen seiner Klasse.


Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage