So überschreiben Sie eine benutzerdefinierte Typmethode, die von Python Swig generiert wird

Wenn eine Python-Erweiterung mit swig generiert wird, wird die in C definierte Struktur automatisch als `` `repr``` definiert, wie unten gezeigt.

<swig_mymodule.mytype; proxy of <Swig Object of type 'struct mytype *' at 0x7f6c74210a20> >

Ich würde gerne etwas tun, weil es nicht so cool ist, aber ich konnte keinen Weg finden, es auf der C-Seite (oder besser gesagt mit einem Schluck) zu kontrollieren.

Wenn Sie "setattr" in "% python code" wie unten gezeigt ausführen, wird der Inhalt in dem von swig generierten Python-Code ausgegeben, sodass er zum Zeitpunkt des Imports überschrieben wird.

swig_mymodule.i


%pythoncode %{
import types

def __mytype_str(self):
    return "<Mytype(…)>”

setattr(mytype, '__str__', types.MethodType(__mytype_str, None, mytype))
%}

Recommended Posts

So überschreiben Sie eine benutzerdefinierte Typmethode, die von Python Swig generiert wird
So speichern Sie eine von Python gekratzte Tabelle in CSV
[Python] So erstellen Sie eine Liste von Zeichenfolgen Zeichen für Zeichen
Verwendung der Methode __call__ in der Python-Klasse
[Python] So erzwingen Sie, dass eine Methode einer Unterklasse einen bestimmten Prozess ausführt
[Python] Wie man eine Klasse iterierbar macht
[Python] So konvertieren Sie eine zweidimensionale Liste in eine eindimensionale Liste
[Python] So invertieren Sie eine Zeichenfolge
Wie bekomme ich Stacktrace in Python?
So führen Sie Maya Python-Skripte aus
[Python] Verwendung der for-Anweisung. Eine Methode zum Extrahieren durch Angabe eines Bereichs oder von Bedingungen.
[Python] Lesen der CSV-Datei (Methode read_csv des Pandas-Moduls)
Sortieren durch Angabe einer Spalte im Python Numpy-Array.
[Python] So zeigen Sie die Elemente der Liste nebeneinander an
Lesen einer CSV-Datei mit Python 2/3
So löschen Sie einen Taple in einer Liste (Python)
Einbetten von Variablen in Python-Strings
So generieren Sie ein Python-Objekt aus JSON
So fügen Sie einen Suchpfad für Python-Module hinzu
So löschen Sie die von Python ausgegebenen Zeichen
So benachrichtigen Sie Discord-Kanäle in Python
[Python] Wie zeichnet man mit Matplotlib ein Histogramm?
[Python] So sortieren Sie Instanzen nach Instanzvariablen
[Python] So sortieren Sie nach dem N-ten M-ten Element eines mehrdimensionalen Arrays
So installieren Sie die Python-Bibliothek, die von Pharmaunternehmen verwendet werden kann
[Python] So löschen Sie einfach einen untergeordneten Prozess, der durch Multiprozess gestartet wurde, von einem anderen Prozess
So installieren Sie Python
So installieren Sie Python
So konvertieren / wiederherstellen Sie einen String mit [] in Python
[Python] Wie zeichnet man mit Matplotlib ein Liniendiagramm?
So richten Sie eine Python-Umgebung mit pyenv ein
[Python] So erweitern Sie Variablen in einer Zeichenfolge
So erstellen Sie eine Django (Python) -Umgebung auf Docker
[Python] So schreiben Sie eine Dokumentzeichenfolge, die PEP8 entspricht
[Python] Erstellt eine Methode zum Konvertieren von Radix in 1 Sekunde
[Python] So erstellen Sie mit Matplotlib ein zweidimensionales Histogramm
So führen Sie einen Befehl mit einem Unterprozess in Python aus
So erstellen Sie eine Python-Umgebung unter Amazon Linux 2
[Python] So rufen Sie eine Funktion von c aus Python auf (ctypes edition)
[Python] Wie zeichnet man mit Matplotlib ein Streudiagramm?
So veröffentlichen Sie GitHub-Seiten mit Pelican, einem statischen HTML-Generator von Python
So stellen Sie pyenv unter Amazon Linux und Ubuntu ein, um eine Python 3.6.0-Umgebung zu erstellen
[Neueste Version 2020.8] So installieren Sie Python
So installieren Sie NPI + Senden Sie eine Nachricht an Python
So installieren Sie Python [Windows]
python3: Verwendung der Flasche (2)
So wechseln Sie die Konfigurationsdatei, die von Python gelesen werden soll
So erstellen Sie eine neue virtuelle Python-Umgebung unter Ubuntu
So schneiden Sie ein Block-Multiple-Array aus einem Multiple-Array in Python
So konvertieren Sie mit Python [Anwendung] von einem Array in ein Wörterbuch
So führen Sie eine Python-Datei an einer Windows 10-Eingabeaufforderung aus
So führen Sie ein Python-Programm in einem Shell-Skript aus
So mischen Sie einen Teil der Python-Liste (at random.shuffle)
[Python] Verwendung von Liste 1
So aktualisieren Sie Pythons Tkinter auf 8.6
So starten Sie AWS Batch über die Python-Client-App
So importieren Sie Dateien in Python an eine beliebige Stelle