Objectives
Python est un langage puissant, orienté objet, convenant parfaitement à la majorité des travaux de développement d'applications et d'interfaces graphiques. Outre sa lisibilité et la simplicité de sa syntaxe, ce qui fait la force de Python est la facilité avec laquelle on peut utiliser et piloter depuis Python des codes écrits dans d'autres langages. Ainsi Python se positionne comme un langage de premier choix dans toutes les applications pour lesquelles la réutilisation de code est réellement importante, comme par exemple les applications de calcul scientifique.
La formation proposée ici se déroule sur quatre jours et étudie les différents moyens, viables industriellement, pour intégrer du code C ou du code C++ dans un programme en Python. Outre l'intégration purement fonctionnelle, elle s'intéresse également aux diverses problématiques inhérentes au C et au C++ (typage, comptage de références, etc.). Enfin, elle propose une critique des différents moyens d'intégration en listant leurs avantages et inconvénients.
La formation comporte une large part de travaux pratiques permettant de mettre en œuvre immédiatement les concepts ayant été vus dans le cadre du cours.
Audience
Ce cours s'adresse aux personnes souhaitant mettre en œuvre au sein d'un même application des codes en Python et C, ou en Python et C++. Il sera particulièrement apprécié des personnes travaillant dans le domaine scientifique, et souhaitant piloter des codes de simulation en C ou C++ à partir d'une application ou de scripts en Python.
Prerequisites
Bonne connaissance de la programmation en Python, C et C++ (au moins trois mois de pratique régulière de Python, six mois de C et C++), solides connaissances de la programmation objet.
program
Intégrer du C dans Python
Introduction
solutions existantes pour intégrer du C/C++ dans PythonModule d'extension de Python
librairie dynamique, mécanismes, squelette d'un module, analyse des arguments, exempleConstruction d'un module
compilation et édition de liens, préparation avecsetup.py
Objet Python
présentation de la classePyObject
, comptage de références, types en PythonInterfaces standards
séquences, mapping, nombresObjets de base
string
,int
, tuples, dictionnairesPython et
NumPy
API CApprofondissement de l'API
callbacks, ramasse-miettes, gestion d'erreurs
Intégrer du C++ dans Python avec Boost
Présentation de Boost
objectif, philosophie d'utilisation, utilisation des templates et de la bibliothèque de supportExporter une fonction avec Boost
exemple simple, construction d'un moduleExporter une classe avec Boost
exemple de base, traitement des constructeurs et des variables membres, définition de propriétés
Approfondir l'exportation de classes avec Boost
héritage, fonctions virtuelles, opérateurs et fonctions spéciales en PythonSubtilités des appels de fonction dans Boost
comptage de références, conventions d'appel
Manipuler des objets avec Boost
création, initialisation des attributs, objets dérivésApplication
le typeArray
deNumPy
Approfondissement de l'utilisation de Boost
itérateurs, exceptions
Intégrer du C++ dans Python avec SWIG
Présentation de SWIG
objectif, philosophie d'utilisation, mise en œuvreExporter des fonctions avec SWIG
syntaxe, mécanismes, conversion de types, traitement des argumentsExporter des classes et structures C avec SWIG
fonctions membres, constructeurs, variables statiquesTraitement des exceptions
Approndir l'utilisation de SWIG
fonctions virtuelles, opérateurs, hiérarchie, surchargeComptage de références
les pointeurs, les objets complexes, la cession de propriété
Utiliser les typemaps
Le préprocesseur de SWIG
Conclusion
Comparaison des possibilités
quels méthodes et outils choisir ? Quand utiliser Python, C ou C++ ? Quand utiliser Boost ou SWIG ?
Customization
Cette formation peut être adaptée afin de répondre au mieux à vos besoins. En particulier, certains points du cours sont facultatifs et ne seront abordés que si les auditeurs manifestent un intérêt et le temps le permet. D'autre part, Logilab dispose aujourd'hui d'une palette très large de modules pédagogiques permettant la personnalisation de ses formations.
L'adaptation des cours en intra-entreprise ne pose aucun problème ; cette opération est cependant plus difficile pour les cours en inter-entreprises. N'hésitez pas à demander conseil à notre service commercial.
Terms
Des sessions en inter-entreprises sont organisées régulièrement dans nos locaux à Paris. Il est possible d'organiser, à votre demande, une ou plusieurs sessions en intra-entreprise (sur site) n'importe où en France ou en Europe.
Chaque participant à la formation dispose d'un exemplaire personnel du support de cours et du manuel d'exercices.
Durée
4 jours soit 28 heures.
Langue
Au choix, française ou anglaise
Intervenant
Tous les intervenants animant cette formation bénéficient de compétences pédagogiques reconnues. D'autre part, ils participent activement au développement du langage Python ainsi que de sa bibliothèque standard, et sont intervenus dans des projets d'informatique scientifique et financière mêlant des codes en Python, C++, C et Fortran.
Travaux pratiques
Cette formation accorde une place prépondérante aux travaux pratiques qui permettent, tout au long du cours, de mettre en œuvre et assimiler les concepts théoriques.
Inter-entreprises
- groupes de 4 personnes minimum et 8 personnes maximum
- mardi-vendredi 9h-12h15, 13h30-17h00
- Paris, Toulouse
- déjeuner inclus
Intra-entreprise
- groupes de 10 personnes maximum
- 4 journées