Comment remplacer une méthode de type défini par l'utilisateur générée par python swig

Lorsqu'une extension python est générée avec swig, la structure définie en C est automatiquement définie avec le `` repr '' suivant.

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

J'aimerais faire quelque chose parce que ce n'est pas cool comme ça, mais je n'ai pas trouvé de moyen de le contrôler du côté C (ou plutôt avec une gorgée).

Si vous faites setattr dans% python code comme indiqué ci-dessous, le contenu sera affiché dans le code python généré par swig, il sera donc écrasé au moment de l'importation.

swig_mymodule.i


%pythoncode %{
import types

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

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

Recommended Posts

Comment remplacer une méthode de type défini par l'utilisateur générée par python swig
Comment enregistrer une table récupérée par python en csv
[Python] Comment créer une liste de chaînes de caractères caractère par caractère
Comment utiliser la méthode __call__ dans la classe Python
[Python] Comment forcer une méthode d'une sous-classe à effectuer un processus spécifique
[Python] Comment rendre une classe itérable
[Python] Comment convertir une liste bidimensionnelle en liste unidimensionnelle
[Python] Comment inverser une chaîne de caractères
Comment obtenir stacktrace en python
Comment exécuter des scripts Maya Python
[Python] Comment utiliser l'instruction for. Une méthode d'extraction en spécifiant une plage ou des conditions.
[Python] Comment lire le fichier csv (méthode read_csv du module pandas)
Comment trier en spécifiant une colonne dans le tableau Python Numpy.
[python] Comment afficher les éléments de la liste côte à côte
Comment lire un fichier CSV avec Python 2/3
Comment effacer un taple dans une liste (Python)
Comment incorporer des variables dans des chaînes python
Comment générer un objet Python à partir de JSON
Comment ajouter un chemin de recherche de module Python
Comment effacer les caractères générés par Python
Comment notifier les canaux Discord en Python
[Python] Comment dessiner un histogramme avec Matplotlib
[Python] Comment trier les instances par variables d'instance
[python] Comment trier par le Nth Mth élément d'un tableau multidimensionnel
Comment installer la bibliothèque Python qui peut être utilisée par les sociétés pharmaceutiques
[Python] Comment supprimer facilement un processus enfant lancé par multiprocessus à partir d'un autre processus
Comment installer Python
Comment installer python
Comment convertir / restaurer une chaîne avec [] en python
[Python] Comment dessiner un graphique linéaire avec Matplotlib
Comment configurer un environnement Python à l'aide de pyenv
[Python] Comment développer des variables dans une chaîne de caractères
Comment créer un environnement Django (python) sur Docker
[Python] Comment écrire une docstring conforme à PEP8
[Python] Création d'une méthode pour convertir la base en 1 seconde
[Python] Comment créer un histogramme bidimensionnel avec Matplotlib
Comment exécuter une commande à l'aide d'un sous-processus en Python
Comment créer un environnement Python sur Amazon Linux 2
[Python] Comment appeler une fonction de c depuis python (édition ctypes)
[Python] Comment dessiner un diagramme de dispersion avec Matplotlib
Comment publier des pages GitHub avec Pelican, un générateur HTML statique créé par Python
Comment mettre Pyenv sur Amazon Linux et Ubuntu pour créer un environnement Python 3.6.0
[2020.8 dernière] Comment installer Python
Comment installer NPI + envoyer un message à la ligne avec python
Comment installer Python [Windows]
python3: Comment utiliser la bouteille (2)
Comment changer le fichier de configuration pour qu'il soit lu par Python
Comment créer un nouvel environnement virtuel Python sur Ubuntu
Comment découper un bloc de plusieurs tableaux à partir d'un multiple en Python
Comment convertir un tableau en dictionnaire avec Python [Application]
Comment exécuter un fichier Python à une invite de commande Windows 10
Comment exécuter un programme Python à partir d'un script shell
Comment mélanger une partie de la liste Python (au hasard.shuffle)
[Python] Comment utiliser la liste 1
Comment mettre à jour Tkinter de Python vers la version 8.6
Comment lancer AWS Batch à partir de l'application cliente Python
Comment importer des fichiers où vous le souhaitez en Python