Metafor

ULiege - Aerospace & Mechanical Engineering

User Tools

Site Tools


devel:python

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
devel:python [2015/06/02 16:37] – [L'interface python de metafor] zianedevel:python [2024/03/01 16:40] (current) – [Qu'est ce que c'est?] boman
Line 1: Line 1:
- 
 ====== Interface python ====== ====== Interface python ======
  
Line 16: Line 15:
     * [[http://www.python.org/|python.org]] : le site officiel     * [[http://www.python.org/|python.org]] : le site officiel
     * [[http://diveintopython.org/|dive into python]] : un bon tutorial     * [[http://diveintopython.org/|dive into python]] : un bon tutorial
-    * [[http://www.cetus-links.org/oo_python.html|cetus]] : un bon paquet de liens 
-    * [[http://starship.python.net/crew/hinsen/|Python and Science]] : un tutorial "scientifique" 
-    * [[http://www.effbot.org/zone/librarybook-index.htm|the standard library]] : une description de la lib standard en pdf 
  
 ===== Python vs l'interpreteur Oofelie (OE) ===== ===== Python vs l'interpreteur Oofelie (OE) =====
Line 104: Line 100:
  
  
-Avoir une première interface est très simple. Le premier problème était les cast implicites cachés derrière les ''get_properties()''. Heureusement, Swig peut gérer ça facilement (un peu comme le ''I_::new_child_from_id()'' de OE). J'ai du aussi gérer les ''std::string'' et les ''UserNo'' via des "''typemaps''" de Swig (un système qui permet de faire des casts implicites automatiques).+Avoir une première interface est très simple. Le premier problème était les cast implicites cachés derrière les ''get_properties()''. Heureusement, Swig peut gérer ça facilement (un peu comme le ''I_::new_child_from_id()'' de OE). J'ai dû aussi gérer les ''std::string'' et les ''UserNo'' via des "''typemaps''" de Swig (un système qui permet de faire des casts implicites automatiques).
  
 Après ceci, le premier résultat ne ressemblait pas trop à l'interpréteur Oofelie. Par exemple, les ''Lock''s étaient stockées dans une variable ''cvar''. Il fallait donc écrire: Après ceci, le premier résultat ne ressemblait pas trop à l'interpréteur Oofelie. Par exemple, les ''Lock''s étaient stockées dans une variable ''cvar''. Il fallait donc écrire:
Line 110: Line 106:
     loadingset.define(1,NODE_PO, Key(cvar.TX|cvar.GD|cvar.RE), 0, f)     loadingset.define(1,NODE_PO, Key(cvar.TX|cvar.GD|cvar.RE), 0, f)
  
-ce qui est lourd. J'ai donc réussi à "descendre" les variables cvar dans chaque namespace (et ceci de manière automatique - sans écrire). Bref, si on ajoute une ''Lock'', ca marche tout seul).+ce qui est lourd. J'ai donc réussi à "descendre" les variables cvar dans chaque namespace (et ceci de manière automatique - sans écrire). Bref, si on ajoute une ''Lock'', ça marche tout seul).
  
 Même remarque pour les noms d'éléments, de matériaux, de ''Elementproperties'', de ''MaterialProperties'', identificateurs, etc. Même remarque pour les noms d'éléments, de matériaux, de ''Elementproperties'', de ''MaterialProperties'', identificateurs, etc.
Line 121: Line 117:
     * Autre moyen: regarder ce que j'ai fait dans ''apps/qs/cont2.py''     * Autre moyen: regarder ce que j'ai fait dans ''apps/qs/cont2.py''
     * La syntaxe est extrêmement proche de celle d'Oofelie (ouf). Le passage des ''.e'' aux ''.py'' est presque immédiat.     * La syntaxe est extrêmement proche de celle d'Oofelie (ouf). Le passage des ''.e'' aux ''.py'' est presque immédiat.
-    * Je vous conseille aussi de jeter un oeil à Swig.+    * Je vous conseille aussi de jeter un œil à Swig.
     * Vous pouvez également regarder l'interface Z-Mesh.     * Vous pouvez également regarder l'interface Z-Mesh.
  
Line 128: Line 124:
     * charger un fichier : ''execfile('fichier.py')'' ou ''import fichier''     * charger un fichier : ''execfile('fichier.py')'' ou ''import fichier''
     * ''dir(module)'' : "''status''" de matlab     * ''dir(module)'' : "''status''" de matlab
-    * ''dir(variable)'' : donne les fcts membres+    * ''dir(variable)'' : donne les fonctions membres
     * ''PYTHONPATH'' : équivaut au ''LIBOOFE''     * ''PYTHONPATH'' : équivaut au ''LIBOOFE''
     * ''type(variable)'' : donne le type de variable     * ''type(variable)'' : donne le type de variable
     * ''print 'variable=', variable'' : imprime ''variable = valeur''     * ''print 'variable=', variable'' : imprime ''variable = valeur''
-    * tout est objet (même une fonction)+    * tout est objet (même une fonction).
  
 Différences par rapport à l'interpréteur OE: Différences par rapport à l'interpréteur OE:
devel/python.1433255853.txt.gz · Last modified: 2016/03/30 15:22 (external edit)

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki