Heim  >  Artikel  >  Backend-Entwicklung  >  Wie rufe ich eine Liste von Methoden in einer Python-Klasse ab?

Wie rufe ich eine Liste von Methoden in einer Python-Klasse ab?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-11-02 20:22:30341Durchsuche

How to Retrieve a List of Methods in a Python Class?

Abrufen einer Liste von Methoden in einer Python-Klasse

Übersicht

Das Abrufen einer Liste von Methoden in einer Python-Klasse ermöglicht eine flexible Objektmanipulation basierend auf Verfügbare Methoden.

Lösung

Um eine Liste der Methoden in einer Klasse zu erhalten, verwenden Sie die Überprüfen Sie die getmembers-Funktion des Moduls:

<code class="python">import inspect

methods_list = inspect.getmembers(Class, predicate=inspect.ismethod)</code>

wobei Class die Zielklasse darstellt.

Python 2 vs. Python 3

Beachten Sie, dass getmembers je nach Python-Version unterschiedliche Ergebnisse zurückgibt :

Python 2: Gibt eine Liste von Tupeln zurück: [(method_name, unbound_method_object), ...]

Python 3: Gibt eine Liste von Methodenobjekten zurück: [unbound_method_object, ...]

Parameter

Die getmembers-Funktion kann Folgendes annehmen Parameter:

  • Prädikat: Eine Funktion zum Filtern der zurückgegebenen Mitglieder. Nur Mitglieder, die das Prädikat bestehen, werden in das Ergebnis einbezogen.
  • Instanz: Eine Instanz der zu überprüfenden Klasse. Wenn nicht angegeben, werden Klassenmethoden überprüft.

Beispiel

So listen Sie die Methoden der OptionParser-Klasse von optparse auf:

<code class="python">from optparse import OptionParser
import inspect

print(inspect.getmembers(OptionParser, predicate=inspect.ismethod))</code>

Ausgabe:

[('__init__', <unbound method OptionParser.__init__>),
 ('add_option', <unbound method OptionParser.add_option>),
 ('add_option_group', <unbound method OptionParser.add_option_group>),
 ...]

Das obige ist der detaillierte Inhalt vonWie rufe ich eine Liste von Methoden in einer Python-Klasse ab?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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