Modules écrits en langage C / C ++ double someFunc(double x); Disons qu'il y en a.
Cet article vous montrera un moyen pratique d'utiliser cela sur l'interpréteur Python.
・ Il est plus facile de faire des essais et des erreurs avec python. -Dans le cadre sur Python, les essais et erreurs peuvent être effectués sans affecter l'implémentation C / C ++ existante. ・ Par essais et erreurs, il est possible de déterminer quelle est l'opération appropriée.
・ Une calculatrice est déjà disponible. -La fonction historique est déjà préparée.
In [1]: a=1+2
In [2]: b= a +2
In [3]: history a=1+2 b= a +2 history
In [4]:
-En outre, il existe une fonction pour enregistrer l'historique dans un fichier de la bibliothèque standard. readline.write_history_file("history.py")
Utilisez ceci Si vous exécutez le fichier history.py terminé Il devient facile de reproduire une seule fois le résultat de l'exécution.
au dessus de double someFunc(double x); Si vous faites un emballage pour Ici, si le wrapper est également nommé someFunc (x),
> y1 = someFunc(100.0) > y2 = someFunc(100.0+10.0) Il devient possible d'exécuter tels que.
> help(someFunc) Par Vous pouvez voir l'aide pour la partie wrapper de python.
Si la fonctionnalité que vous essayez d'obtenir est essentiellement interactive Plutôt que de construire des couches en langage C / C ++ En remplaçant la couche supérieure par l'interpréteur IPython La portée du développement pourrait être considérablement réduite.
Comme il est facile de créer les détails de la fonction à créer par essais et erreurs Cela fonctionne pour la vitesse de développement.
SomeFunc.exe avec ses fonctionnalités en langage C / C ++ en tant que programme unique Créons-le comme ça. Décidez comment entrer et sortir cette commande os.system ("argument someFunc.exe> fichier de résultats") Pour pouvoir exécuter comme. Et la valeur de retour de la fonction doit être écrite dans le fichier de résultat. Faire lire le résultat à partir du fichier C'est probablement la manière la plus simple de commencer à écrire [Note 1].
Ensuite, écrivons une fonction python qui utilise la commande self-made.
.py:someFunc.py
def someFunc(x):
Exécutez la commande personnalisée ici
Écrivons le code pour attribuer la valeur de retour à r.
return r
Même avec un tel style d'écriture, vous devriez être en mesure de réaliser le travail souhaité.
--Facile à automatiser l'entrée de la fonction. --Pour p dans glob.glob ("* .png "): ou pour root, dirs, fichiers dans os.walk ('.'): Il est facile de traiter plusieurs fichiers. --Facile à traiter la sortie de la fonction.
Lorsqu'une erreur se produit lors du traitement sur l'interpréteur IPython, la mémoire à ce moment-là est enregistrée sur l'interpréteur IPython. Il est facile de se référer à la variable telle quelle ou de redémarrer un autre processus. Lors de l'écriture d'un programme dans le langage du compilateur, dans la plupart des cas, lorsqu'une erreur se produit, le programme s'arrête et il n'y a aucun moyen de le redémarrer. L'utilisation de l'interpréteur Python comme base est un moyen très simple de créer un environnement convivial.
Maîtriser les riches fonctionnalités d'IPython
[Incorporer Python comme environnement de script](https://ja.wikipedia.org/wiki/Python%E3%82%92%E4%BD%BF%E3%81%A3%E3%81%A6% E3% 81% 84% E3% 82% 8B% E8% A3% BD% E5% 93% 81% E3% 81% 82% E3% 82% 8B% E3% 81% 84% E3% 81% AF% E3% 82% BD% E3% 83% 95% E3% 83% 88% E3% 82% A6% E3% 82% A7% E3% 82% A2% E3% 81% AE% E4% B8% 80% E8% A6% A7)
Note 1: os.system() Il vaut mieux utiliser os.popen (), sous-processus que d'utiliser Extension de Python avec C et C ++ Il serait préférable d'utiliser.
Recommended Posts