Python dir() eingebaute Funktion

Aus der Python 3 Dokumentation

Ohne Argumente gibt die Liste der Namen im aktuellen lokalen Gültigkeitsbereich zurück. Mit einem Argument wird versucht, eine Liste gültiger Attribute für dieses Objekt zurückzugeben.

Einführung

Die dir() Funktion in Python ist eine leistungsstarke eingebaute Funktion, die eine Liste von Namen im aktuellen Namensraum oder die Attribute eines gegebenen Objekts zurückgibt. Sie wird häufig verwendet, um Objekte, Module und Klassen zu introspektieren und zu untersuchen, und hilft Ihnen dabei, die verfügbaren Methoden, Attribute und Namen zu entdecken, mit denen Sie arbeiten können.

Syntax

dir([object])
  • object (optional): Das Objekt, dessen Attribute Sie untersuchen möchten. Wenn es nicht angegeben wird, gibt es die Namen im aktuellen Namensraum zurück.

Untersuchen von Namen im aktuellen Namensraum

a = 10
b = "Hello"
def my_function():
    pass

print(dir())
['__annotations__', '__builtins__', '__doc__', '__loader__', '__name__', '__package__', '__spec__', 'a', 'b', 'my_function']

Untersuchen von Modulattributen

import math
print(dir(math))
['__doc__', '__loader__', '__name__', '__package__', '__spec__', 'acos', 'acosh', 'asin', '... ]

Untersuchen von Objektattributen

class MyClass:
    def __init__(self):
        self.x = 5
        self.y = "Hello"

obj = MyClass()
print(dir(obj))
['__class__', '__delattr__', '__dict__', '__dir__', '__doc__', '__eq__', '__format__', ... 'x', 'y']

Verwendung von dir() mit eingebauten Typen

my_list = [1, 2, 3]
print(dir(my_list))
[..., 'append', 'clear', 'copy', 'count', 'extend', 'index', 'insert', 'pop', 'remove', 'reverse', 'sort']

Filtern der dir() Ausgabe

import math
print([name for name in dir(math) if not name.startswith("__")])
['acos', 'acosh', 'asin', 'asinh', 'atan', 'atan2', ... ]