Python dir()-Funktion
Python3 integrierte Funktionen
dir()Es ist eine integrierte Funktion in Python, mit der eine Liste von Attributen und Methoden eines Objekts abgerufen wird.
dir()Gibt eine Liste zurück, die die Namen aller Attribute und Methoden des Objekts enthält. Diese Funktion ist sehr nützlich, um unbekannte Objekte zu erkunden, Code zu debuggen und Klassenstrukturen zu verstehen.
Wortdefinition: dirJadirectoryAbkürzung von (directory), hier bezogen auf die Liste der Attribute und Methoden.
Grundlegende Syntax und Parameter
Syntaxformat
dir(object) dir()
Parameterbeschreibung
- Parameter object(Optional):
- Typ: Beliebiges Objekt
- Beschreibung: Das Objekt, dessen Attributliste abgerufen werden soll. Wenn kein Parameter übergeben wird, wird die Liste der Namen im aktuellen Gültigkeitsbereich zurückgegeben.
Funktionsbeschreibung
- Rückgabewert: Gibt eine Liste von Zeichenketten zurück, die die Namen von Attributen und Methoden enthält.
- Eigenschaften: Die Liste ist alphabetisch sortiert.
Beispiele
Beispiel 1: Objektattribute anzeigen
Beispiel
print(dir([]))
# Ausgabe: ['__add__', '__class__', '__contains__', ... 'append', 'clear', 'copy', 'count', 'extend', 'index', 'insert', 'pop', 'remove', 'reverse', 'sort']
# Attribute eines Strings anzeigen
print(dir(""))
# Ausgabe: ['__add__', '__class__', '__contains__', ... 'capitalize', 'casefold', 'center', 'count', 'encode', 'endswith', 'expandtabs', 'find', 'format', 'format_map', 'index', 'isalnum', 'isalpha', 'isascii', 'isdecimal', 'isdigit', 'isidentifier', 'islower', 'isnumeric', 'isprintable', 'isspace', 'istitle', 'isupper', 'join', 'ljust', 'lower', 'lstrip', 'maketrans', 'partition', 'replace', 'rfind', 'rindex', 'rjust', 'rpartition', 'rsplit', 'rstrip', 'split', 'splitlines', 'startswith', 'strip', 'swapcase', 'title', 'translate', 'upper', 'zfill']
# Attribute eines Wörterbuchs anzeigen
print(dir({}))
# Ausgabe: ['__class__', '__contains__', ... 'clear', 'copy', 'get', 'items', 'keys', 'pop', 'popitem', 'setdefault', 'update', 'values']
Erwartete Ausgabe:
Gibt eine Liste aller Attribut- und Methodennamen des Objekts zurück.
Code-Erklärung:
- Beginnend mit doppeltem Unterstrich
__sind spezielle Attribute/Methoden (magische Methoden). - Diejenigen ohne doppelte Unterstriche sind öffentliche Methoden, wie z. B.
append,sortusw.
Beispiel 2: Benutzerdefinierte Klassenattribute anzeigen
Beispiel
def __init__(self, name, age):
self.name = name
self.age = age
def greet(self):
return f"Hello, I'm {self.name}"
# Instanz erstellen
p = Person("Tom", 20)
# Instanzattribute anzeigen
print(dir(p))
# Ausgabe: ['__class__', '__delattr__', '__dict__', '__init__', ... 'age', 'greet', 'name']
# Filtern, um nur nicht spezielle Methoden anzuzeigen
attrs = [attr for attr in dir(p) if not attr.startswith('_')]
print(attrs) # Ausgabe: ['age', 'greet', 'name']
Erwartete Ausgabe:
['__class__', '__delattr__', '__dict__', '__init__', ... 'age', 'greet', 'name'] ['age', 'greet', 'name']
Code-Erklärung:
__dict__Enthält die Instanzattribute des Objekts.- Filter
__Methoden, die mit (doppelten Unterstrichen) beginnen, herausfiltern, um öffentliche Attribute zu erhalten.
Beispiel 3: Verwendung ohne Parameter
Beispiel
print(dir())
# Ausgabe: ['__annotations__', '__builtins__', '__doc__', '__loader__', '__name__', '__package__', '__spec__']
# Ansicht nach dem Importieren des Moduls
import os
print(dir())
# Wird 'os' in die Liste aufnehmen
# Modulattribute anzeigen
import json
print(dir(json))
# Ausgabe: ['JSONDecodeError', '__all__', '__author__', '__builtins__', '__cached__', '__doc__', '__file__', '__loader__', '__name__', '__package__', '__spec__', 'decoder', 'dump', 'dumps', 'encoder', 'load', 'loads', 'tool']
Erwartete Ausgabe:
Gibt die Liste der Namen zurück, die im aktuellen Gültigkeitsbereich verfügbar sind.
dir()Es ist ein leistungsstarkes Werkzeug zum Erkunden von Python-Objekten und -Modulen, besonders geeignet für interaktives Lernen und Debuggen.
Python3 integrierte Funktionen
Andere Erweiterungen