Eine Liste von Methoden in einer Python-Klasse abrufen
Das Durchlaufen der Methoden einer Klasse oder das unterschiedliche Behandeln ihrer Objekte basierend auf ihren Methoden erfordert das Abrufen einer Liste dieser Methoden. Dieser Artikel bietet zwei Ansätze, um dies zu erreichen.
Verwendung von inspect.getmembers()
Diese Funktion verwendet eine Klasse oder Instanz als erstes Argument und eine Prädikatfunktion als ihr Argument zweites Argument. Die Prädikatfunktion filtert die zurückgegebene Liste basierend auf einem bestimmten Kriterium. Um eine Liste von Methoden in einer Klasse abzurufen, können wir inspect.ismethod als Prädikatfunktion übergeben.
<code class="python">from inspect import getmembers, ismethod class MyClass: def method1(self): pass def method2(self): pass # Python 2.x methods = getmembers(MyClass, ismethod) # Python 3.x methods = getmembers(MyClass, isfunction)</code>
Die Methodenvariable enthält eine Liste von Tupeln, wobei jedes Tupel den Methodennamen und das Methodenobjekt enthält .
Verwendung von dir()
Die Funktion dir() gibt eine Liste aller Attribute eines Objekts zurück, einschließlich Methoden. Es enthält jedoch auch Nicht-Methoden-Attribute, die möglicherweise eine zusätzliche Filterung erfordern.
<code class="python">methods = [m for m in dir(MyClass) if callable(getattr(MyClass, m))]</code>
Der callable()-Filter prüft, ob ein Attribut aufrufbar ist und eine Methode angibt. Beachten Sie, dass dieser Ansatz möglicherweise nicht so zuverlässig ist wie die Verwendung von inspect.getmembers(), da er möglicherweise Nicht-Methodenattribute enthält.
Das obige ist der detaillierte Inhalt vonWie erhalte ich eine Liste von Methoden innerhalb einer Python-Klasse?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!