Python

Python-Inspect-Modul

Python-Inspect-Modul

Überblick

Haben Sie sich jemals gefragt, wie cool es wäre, den Quellcode eines anderen Python-Moduls in Ihrem eigenen Programm zu erhalten?? Dies öffnet Ideen und Türen für so viele Möglichkeiten wie das Verarbeiten des Quellcodes eines Moduls, das Abrufen seines Docstrings, das automatische Erstellen von Dokumentation für ein Stück Code. Lassen Sie mich Ihnen sagen, dies ist mit Python zu 100% möglich prüfen Modul.

Python-Inspect-Modul

Python prüfen module ermöglicht es uns, Objekte eines laufenden Programms zu untersuchen, den Quellcode eines Moduls abzurufen, den mit diesem Modul verknüpften Docstring abzurufen, die Methodensignatur einer Funktion in Python zu lesen und vieles mehr. Auf diese Weise können wir Projekte erstellen, die Live-Code-Dokumentation für unsere eigenen Projekte erstellen. Das bedeutet, dass wir nur die notwendigen Kommentare zu unserem Python-Code machen müssen und den Rest der Arbeit Python selbst überlassen können, um die Dokumentation für uns zu erstellen.

Beispielcode verwenden

Um zu verstehen, wie Python prüfen Modul funktioniert, verwenden wir eine unserer eigenen Beispielcodedefinitionen in Python, die nur die Vererbung in Python demonstrieren und wie Objekte erstellt werden. Schauen wir uns das Beispielmodul an, das wir im Rest des Tutorials hier verwenden werden:

def module_level_function(arg1, arg2 = 'default', *args):
"""Ich bin eine Funktion auf Modulebene."""
local_var = arg1 * 2
lokale_var zurückgeben
Klasse Person (Objekt):
"""Definition für Personenklasse."""
def __init__(selbst, Name):
selbst.Name = Name
def get_name(self):
"Gibt den Namen der Instanz zurück."
kehre selbst zurück.Name
person_obj = Person('sample_instance')
Klasse Schüler(Person):
"""Dies ist die Klasse Student, Kind der Klasse Person.
"""
# Diese Methode ist nicht Teil der Person-Klasse.
def do_something_else(self):
"""Hier ist alles möglich."""
def get_name(self):
"Überschreibt Version von Person-Klasse"
return 'Student(' + selbst.Name + ')'

Wir haben ein Beispielmodul definiert, damit wir in späteren Beispielen, die wir schreiben, mit dem Extrahieren des Quellcodes und anderer Komponenten beginnen können. Lass uns anfangen.

Inspektionsmodul

Das obige Python-Modul wird in einer Datei namens . gespeichert linuxhint.py im selben Verzeichnis, in dem wir unsere neuen Python-Skripte erstellen werden. Wir können ein Modul in Python untersuchen, indem wir zuerst einen Import dafür durchführen import. Diese Importanweisung wird auch in allen Skripten vorhanden sein, die wir in späteren Abschnitten schreiben. Hier ein Beispielprogramm, mit dem wir unser Modul prüfen:

Importkontrolle
linuxhint importieren
für Name, Daten inspizieren.getmembers(linuxhint):
wenn name.beginnt mit('__'):
fortsetzen
drucken(' : !r'.Format(Name, Daten))

Folgendes erhalten wir mit diesem Befehl zurück:

Python-Inspect-Modul


Die Ausgabe liefert uns die Details darüber, wie viele Klassen, Funktionen und Objekte in diesem Modul vorhanden sind, wenn das Skript ausgeführt wird.

Inspizieren von Klassen in einem Modul

Das obige Beispiel, das wir gezeigt haben, zeigte alle Details eines Moduls auf einmal. Wenn wir nur die Informationen zu den Klassen im Modul erhalten möchten, können wir Folgendes erhalten:

Importkontrolle
linuxhint importieren
für Schlüssel, Daten inspizieren.getmembers(linuxhint, inspect.isklasse):
drucken(' : !r'.Format(Schlüssel, Daten))

Sehen wir uns die Ausgabe für diesen Befehl an:

Python-Modulklasse prüfen


Die Ausgabe ist genau die gleiche, nur dass diesmal nur die Klassendefinitionen an die Konsole ausgegeben wurden.

Inspizieren von Methoden in einer Klasse

Die Methoden sind diejenigen, die das Verhalten einer Klasse in OOPs definieren und Informationen darüber liefern, wie das Verhalten eines Objekts geändert wird, wenn die Methoden aufgerufen werden. Aus diesem Grund ist es wichtig, alle Methoden zu dokumentieren, die in einer Klasse oder einem Modul vorhanden sind document. Wir können Informationen zu einer Methode wie dieser erhalten:

Importkontrolle
aus pprint importieren pprint
linuxhint importieren
pprint(inspizieren.getmembers(linuxhint.Person, inspizieren.isfunktion))

Folgendes erhalten wir mit diesem Befehl zurück:

Inspizieren einer Methode der Klasse


Die Ausgabe zeigt nur die Methodendefinition jeder vorhandenen Methode an.

Inspizieren von Objekten einer Klasse

Wenn Sie sich einen Überblick darüber verschaffen, wie viel Platz beim Ausführen eines Python-Skripts belegt wird, ist es wichtig zu wissen, wie viele Objekte für die Klasse für die Klasse in einem Programm instanziiert werden. Um dies zu wissen, können wir auch Informationen über Objekte einer Klasse in einem Modul erhalten:

Importkontrolle
aus pprint importieren pprint
linuxhint importieren
person = linuxhint.Person(name='inspect_getmembers')
pprint(inspizieren.getmembers(person, inspizieren.ismethode))

Sehen wir uns die Ausgabe für diesen Befehl an:

Inspizieren von Objekten der Klasse


Dadurch wird auch die Speicheradresse gedruckt, an der sich dieses Objekt im Laufe dieses Programms befindet.

Docstring einer Klasse prüfen

Der Docstring eines Moduls ist der Teil, der einen Benutzer oder Entwickler tatsächlich darüber informiert, worum es in diesem Modul geht und welche Funktionen es bietet. Mit dem inspect-Modul können wir den Docstring eines kompletten Moduls abrufen, um es besser zu dokumentieren. Sehen wir uns an, wie wir Docstring für eine Klasse extrahieren können:

Importkontrolle
linuxhint importieren
print('Person.__doc__:')
drucken (linuxhint.Person.__doc__)
drucken()
print('getdoc(Person):')
drucken (prüfen).getdoc(linuxhint.Person))

Folgendes erhalten wir mit diesem Befehl zurück:

Docstring für den Unterricht abrufen

Inspizieren der Quelle einer Klasse

Schließlich sehen wir, wie wir auch den kompletten Quellcode einer Klasse in einem Python-Programm extrahieren können. Dies ist eine wichtige Funktion und hilft uns, Dokumentationstools für ein Python-Modul zu erstellen build. Sehen wir uns ein Beispiel in Aktion an:

Importkontrolle
linuxhint importieren
drucken (prüfen).getsource(linuxhint.Schüler))

Folgendes erhalten wir mit diesem Befehl zurück:

Quellcode der Klasse abrufen

Überprüfen der Quelle einer Methode

So wie wir den Quellcode einer Klasse extrahiert haben, extrahieren wir nun den Quellcode einer Methode in unserem Python-Programm:

Importkontrolle
linuxhint importieren
drucken (prüfen).getsource(linuxhint.Schüler.get_name))

Folgendes erhalten wir mit diesem Befehl zurück:

Quelle der Methode in einer Klasse abrufen

Überprüfung der Methodensignatur

Die Signatur einer Methode bietet einen tiefen Einblick darüber, was eine Methode tut und welche Eingaben sie benötigt. Es bietet uns die Möglichkeit, eine Methode besser zu dokumentieren, da die Dokumentation einer Methode unvollständig ist, ohne zu wissen, welche Eingaben erforderlich sind. So können wir die Informationen zu einer Methodensignatur extrahieren:

Importkontrolle
linuxhint importieren
drucken (prüfen).Signatur (Linuxhint.module_level_function))

Folgendes erhalten wir mit diesem Befehl zurück:

Signatur einer Methode erhalten

Fazit

In dieser Lektion haben wir uns angesehen, wie wir das Python-Inspect-Modul verwenden können, um den Quellcode und viele andere interne Funktionen eines Python-Programms zu untersuchen. Lesen Sie hier mehr Python-basierte Beiträge.

Herunterladen und Spielen von Sid Meier's Civilization VI unter Linux and
Einführung in das Spiel Civilization 6 ist eine moderne Version des klassischen Konzepts, das in der Reihe der Age of Empires-Spiele eingeführt wurde....
So installieren und spielen Sie Doom unter Linux
Einführung in Doom Die Doom-Serie entstand in den 90er Jahren nach der Veröffentlichung des ursprünglichen Doom. Es war sofort ein Hit und seitdem hat...
Vulkan für Linux-Benutzer
Mit jeder neuen Grafikkartengeneration stoßen Spieleentwickler an die Grenzen der grafischen Wiedergabetreue und kommen dem Fotorealismus einen Schrit...