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