Listet Methodenargumentinformationen für Klassen und Module in Python auf

Bei der Arbeit musste ich alle Methodenargumente auflisten, die zu einem Python-Modul gehören, also habe ich es nachgeschlagen. Ich denke, es ist eine sehr Nischenaufgabe, aber anstelle eines Memos (^ _ ^;)

Politik

Mit dem Inspect-Modul können Sie Metainformationen zu Klassen und Modulen der obersten Ebene abrufen.

Details zum Inspektionsmodul-> https://docs.python.org/2/library/inspect.html

inspect.getmembers(object)

Gibt alle Mitglieder zurück, die zu dem als Argument angegebenen Objekt in einer Liste des Formulartupels ('Name', 'Wert') gehören.

inspect.getargspec(func)

Gibt die Argumentinformationen der Funktion zurück, die dem Argument im Format Tupel zugewiesen wurde (Argumente, Variablen, Schlüsselwörter, Standardwerte). args enthält eine Liste von Argumenten.

Unten ist ein Beispiel.

Ein Beispiel ist der Python-Client von Trove, ein Openstack-DBaaS. (Ich wollte alle Argumente der I / F überprüfen, die die API ausgeben, um sie zu durchsuchen.)

troveclient.v1.client.Client Struktur mit Instanzen verschiedener Klassen in der Instanzvariablen der Klasse von Unten finden Sie den Code zum Überprüfen der Methodenargumente jeder Instanz

import inspect
import troveclient.v1.client as dbcli


cli = dbcli.Client('', '', '')
cli_info = inspect.getmembers(cli)
for rds_info in cli_info:
    if rds_info[0][0] != "_":
        # Above if statement is for removing private class
        for info in inspect.getmembers(rds_info[1]):
            if inspect.ismethod(info[1]):
                if info[0][0] != "_":
                    # Above "if" statement is for removing private method
                    for arg in inspect.getargspec(info[1]).args:
                        print rds_info[0], info[0], arg

Unten finden Sie den Code zur Untersuchung der CLI-I / F. getmembers holt wirklich alle Attribute Ich habe auch die Attribute im Dekorateur deklariert.

 import inspect
 import troveclient.v1.shell as rdscli

 for i in inspect.getmembers(rdscli):
     if inspect.isfunction(i[1]):
         for j in inspect.getmembers(i[1]):
             if j[0] == 'arguments':
                 # Above if statement is for retrieving decorators attribute. 
                 for k in j[1]:
                     required = 'y'
                     default = 'None'
                     helpstr = k[1].get('help')
                     if 'default' in k[1].keys():
                         required = 'n'
                         default = k[1].get('default')
                     if default is None:
                         default = 'None'
                     if helpstr is None:
                         helpstr = 'None'
                     if isinstance(default, list):
                         default = "[" + ",".join(default) + "]"
                     print(i[0] + "|" + k[0][0] + "|" + required +
                           "|" + default + "|" + helpstr)

Recommended Posts

Listet Methodenargumentinformationen für Klassen und Module in Python auf
Unterschied zwischen list () und [] in Python
Listenverkettungsmethode in Python, Unterschied zwischen list.extend () und dem Operator "+"
Nützliche Tricks in Bezug auf Listen und Anweisungen in Python
Module und Pakete in Python sind "Namespaces"
Unterschied zwischen Anhängen und + = in der Python-Liste
Zusammenfassung der Module und Klassen in Python-TensorFlow2-
Sofortige Methodengrammatik für Python und Ruby (Lernen)
[Hikari-Python] Kapitel 09-02 Klassen (Erstellen und Instanziieren von Klassen)
Sortierte Liste in Python
Liste der Python-Module
Sortierte Liste in Python
Filterliste in Python
Python-Pakete und -Module
Simplex-Methode (Einzelmethode) in Python
Die findähnliche Sache der Liste in Python
Private Methode in Python
Janken Poi in Python für Anfänger (Antworten und Erklärungen)
Implementierte List und Bool in Python und SQLite3 (persönliche Notiz)
Liste der Python-Bibliotheken für Datenwissenschaftler und Dateningenieure
[Python] Kein Wert für das Argument selbst im ungebundenen Methodenaufruf
[Python] Ruft die Liste der im Modul definierten Klassen ab
Einstellungen für das Spielen von Wave in Python PyAudio und PortAudio
Probleme und Gegenmaßnahmen zum Überlaufen der Binärisierung von Otsu in Python
Listenmethode für verschachtelte Ressourcen im Django REST-Framework
[Python] So sortieren Sie Diktate in Listen und Instanzen in Listen
Suchen Sie rekursiv nach Dateien und Verzeichnissen in Python und geben Sie sie aus
Super einfacher Fall k-means Methode Python-Code
Python-Liste, für Anweisung, Wörterbuch
Lernen Sie Python-Pakete und -Module kennen
[Python] Erstellen Sie eine Datums- und Zeitliste für einen bestimmten Zeitraum
In Python werden die Elemente in der Liste sortiert und als Elemente und Vielfache ausgegeben.
[Python] So löschen Sie eine Zeile / Spalte in einer Tabelle (Liste der Optionen für die Drop-Methode)
Techniken zum Sortieren in Python
Tipps zum Codieren kurz und einfach in Python zu lesen
Python-Kurs zum Lernen mit Chemoinfomatik
Praktische Schreibmethode beim kontinuierlichen Anhängen an die Liste in Python
Stapel und Warteschlange in Python
Analysieren Sie die Researchmap-API mit Python und erstellen Sie automatisch eine Word-Datei für die Leistungsliste
Python-Liste und Tapples und Kommas
Probleme und Lösungen bei der Frage nach MySQL db in Python 3
Python-Listeneinschlussnotation und Generator
Newtons Methode in C ++, Python, Go (zum Verständnis von Funktionsobjekten)
[Python / PyQ] 4. Liste zur Anweisung
Unittest und CI in Python
Python #Liste für Super-Anfänger
Das Unterdrücken von Methodenüberschreibungen in Python
Abrufen von Listenelementen in Python
Zeichnen Sie geografische Informationen in Python
Über "für _ in range ():" von Python
Liste der in Python verfügbaren Löser und Modellierer für lineares Design (LP)
Extrahieren Sie mehrere Listenduplikate in Python
Überprüfen Sie Python auf Speicherlecks
Pakete, die MIDI mit Python Midi und Pretty_Midi verarbeiten
[Python] Verwalten Sie Funktionen in einer Liste
Ausgabe 2017 Premium Friday List in Python