Python ctypes

Python ctypes
„Das Python CTypes -Modul wird in diesem Artikel überprüft. Während der Implementierung des Python -Codes werden wir normalerweise die Anforderung der Anforderung haben, Methoden einzubeziehen, die möglicherweise in einer anderen Domäne erstellt wurden. Einer der häufigsten Gründe dafür ist, dass Python langsamer ist als andere Programmiersprachen wie C oder C++. Die Leistung kann durch die Durchführung komplexer Berechnungen in einer schnellen und effizienten Sprache erheblich verbessert werden.”

In Wirklichkeit verwenden einige Python -Module wie Numpy und OpenCV C- oder C ++ - Funktionen. Das Python CTypes -Modul macht es den Benutzern möglich, Module wie diese zu integrieren und ihre Methoden anzuwenden.

Um die Verwaltung des Speichers in CTypes zu besprechen, können einige Verfahren als Grundlage dienen. Die Tatsache, dass Benutzer nicht mehr Zeit damit verbringen müssen, die Datenspeicherung zu verwalten. Die Sprache, die den Speicher sofort erwirbt. Wir zeigen auch, wie Sie eine C -Bibliothek laden und ihre Funktionen aufrufen.

Wir werden eine Vielzahl von Codes auf Ubuntu 20 ausführen.04 In diesem Artikel. Bevor wir die Befehle eingeben, haben wir zunächst auf das Terminal zugreifen.

Wir werden den Befehl $ nano sum ausführen.C. Das Schlüsselwort „Nano“ wird verwendet, um die erforderliche Datei zu öffnen. Hier müssen wir die Summe öffnen.c Datei.

$ nano sum.C

Die Datei der Nano -Summe.C wird erfolgreich eröffnet, indem der obige Befehl ausgeführt wird. Vor etwas anderem werden wir unsere_funktion aufbauen (). Wir haben diese Funktion zwei Parameter gegeben, die "num_numbers" und einen Zeiger enthalten. Das Argument "num_numbers" repräsentiert die Gesamtzahlen, die wir haben, und der Zeigerparameter zeigt auf die Zahl.

Im nächsten Schritt initialisieren wir die Variable "I". Wir deklarieren eine Variable „Summe“ und setzen sie auf 0. Darüber hinaus werden wir die „für“ -Schloop nutzen. Wir werden jeden Wert von i = 0 bis zum Wert der Schleifenvariablen „I“ iterieren als num_numbers. Im letzten Teil der „für“ Schleife belasten wir den Wert von „I“ durch 1. In der Schleife "für" werden wir die Zahlen [i] der "Summe" -Variable hinzufügen. Am Ende haben wir die Return -Anweisung verwendet. Dies gibt den Summenwert zurück. Das vorhergehende Bild zeigt den Quellcode der Datei an.

Wir tippen auf Strg+X, um die Summe zu beenden.c Datei. Jetzt öffnen wir noch einmal das Terminal. Lassen Sie uns CTypes verwenden, um ein einfaches Modul mit nur einer Methode in das Python -Skript zu integrieren. Wir können jedoch keinen Standard assoziieren .c Datei. Der Befehl kann verwendet werden, um ein Standardpaket zu erstellen, was wir tun müssen.

Also haben wir den Befehl cc -fpic -shared -o libsum eingegeben.Also aus der Summe.C. Wir haben die Erweiterung zugewiesen .c zur Datei. Jeder Name wird verwendet, um den Dateinamen anzugeben, aber die Erweiterungen berücksichtigen, während dieser Befehl verwendet wird.

Im Schritt werden wir den Befehl "DIR" ausführen, um das Verzeichnis "libsum" zu öffnen.Also Summe.C".

$ Dir

Nach dem Öffnen des Verzeichnisses erstellen wir eine neue Datei, die als Test bezeichnet wird.py. Nano würde angewendet, um diese Datei zu öffnen.

$ nano test.py

Nach dem Öffnen des Tests.PY -Datei starten wir die Codierung. CTypes müssen zu Beginn in den Code integriert werden. Dann erstellen wir eine variable „Summe“, die von den CTypen kommt.CDLL (“./libsum.So"). Wir müssen die Daten angemessen vorsichtig sein. Mit CTypes können die Benutzer eine Standardbibliothek importieren und Funktionen ebenfalls explizit daraus abrufen. Dies erfordert, dass das Programm auf dem gleichen Weg wie die Standardbibliothek aufgerufen wird und dass sie beide hier bereits lokalisiert sind. Wenn wir die einbeziehen .PY -Datei mit der Standardbibliothek gab es mehrere Betriebssystemspezifikationen in Bezug auf Bibliothekssuchverzeichnisse.

Darüber hinaus nennen wir die Funktionssumme.unsere Funktion.Argrtpes. Wir setzen den Wert dieser Funktion als ctypes.C_int, ctypes.Zeiger (ctypes.c_int). Dann definieren wir unsere_function (). Wir haben die Zahlen als Argumente bereitgestellt. Wir erstellen eine globale Variable, die als _Sum bezeichnet wird. Wir deklarieren eine variable num_numbers. Innerhalb dieser Variablen müssen wir die Länge der definierten Zahlen herausfinden, sodass wir die Len () -Methode verwenden werden. Wir erstellen ein Array. Dieses Array ist in einer Variablen "array_type" gespeichert. Wir geben den Wert als ctypes an.c_int * num_numbers zum variablen array_type.

Jetzt initialisieren wir eine neue Variable, „Ergebnis“,. Hier nennen wir die Funktionssumme.Our_function (Stypen.c_int (num_numbers). In ähnlicher Weise geben wir den Zeiger der Nummer (*numb) zur Anweisung array_type an. Um den Code zu beenden, geben wir die Rückgabeanweisung ein. Innerhalb dieser Funktion bestehen wir eine Variable „Ergebnis“ als Parameter. Der Datentyp der Ergebnisvariablen ist eine Ganzzahl. Das vorhergehende Bild zeigt den Quellcode der Datei an.

Wir werden dies verwenden, um das Programm aus jeder Datei auszuführen. Nachdem die Bibliothek importiert wurde, wird dies in einem Python -Attribut gespeichert, das Verfahren für jedes definierte Modul enthält.

Benennen wir den Test um.PY -Datei mit der Summe.PY -Datei.

$ mv Test.py sum.py

Wir erstellen eine neue Datei „Test.py “, und dann wird es mit dem Nano -Schlüsselwort vor dem Dateinamen geöffnet.

$ nano test.py

Der Test.Die PY -Datei wird geöffnet. Jetzt werden wir die Summe importieren. In der nächsten Zeile rufen wir die Funktion print () auf. Innerhalb dieser Funktion nennen wir die Methodensumme.Our_function (). Der Our_function () enthält die ersten fünf numerischen Werte als Argumente. Das vorhergehende Bild zeigt den Quellcode der Datei an.

Hier führen wir die Datei „Test aus.py ”. Wir schreiben den Befehl $ python3 Test.py. Dieser Befehl wird ausgeführt und das Ergebnis wird am Terminal angezeigt.

$ python3 Test.py

Abschluss

Wie man Pythons CTypes verwendet, wurde in diesem Artikel behandelt. Wir führen die Befehle auf Ubuntu 20 aus.04. Wir haben eine „Summe eröffnet.c ”Datei mit Hilfe des Nano -Terms. In dieser Datei haben wir Our_function () konstruiert, und dann haben wir Our_function definiert. Als nächstes öffnen wir den Test.PY -Datei. In dieser Datei können wir Our_function () aufrufen und diese Funktion dann verwenden.