Ce petit tutoriel va vous expliquer comment créer un greffon en langage Python pour le langage Linotte.
Les deux fichiers suivants doivent être localisés dans le répertoire .linotte/greffons présents dans votre répertoire personnel.
- La première étape consiste à créer le descripteur du greffon dans un fichier nommé mathlib.greffon.xml :
<?xml version="1.0" encoding="UTF-8"?>
<greffon nom="Mathlib" espece="mathlib" class="Mathlib" lang="python">
<description>Librairie de fonctions mathématiques</description>
<auteur>Exemple</auteur>
<version>0.1</version>
</greffon>
Ce fichier est la carte d’identité du greffon. Il contient les informations permettant à l’interprète Linotte d’initialiser correctement le greffon.
- Maintenant, nous allons créer notre fichier en langage Python avec notre éditeur Python préféré.
Voici le fichier Mathlib.py qui doit être déposé dans le même répertoire que le descripteur :
from org.linotte.greffons.externe import Greffon
class Mathlib(Greffon) :
def slot_pgcd(self, a, b) :
while (b > 0):
r = a % b
a, b = b, r
return a
def slot_somme(self, liste) :
compteur = 0
somme = 0
while compteur < len(liste) :
somme += liste[compteur]
compteur += 1
return somme
def slot_moyenne(self, liste) :
return self.slot_somme(liste) / len(liste)
Notre fichier Python propose 3 méthodes fonctionnelles : pgcd, somme et moyenne. Comme vous pouvez le remarquer, l’interprète Linotte ne prendra en compte que les méthodes commençant par slot_.
- Relancez l’Atelier Linotte et vérifiez la présence de votre greffon dans la boite A propos présent dans le menu Aide :
- Et enfin, dans l’Atelier Linotte, créons notre nouveau livre : DemoMathLib.liv:
- Pour tester notre greffon, nous allons écrire le livre suivant :
principale :
math est un mathlib
notes est un casier de nombre valant 12, 14, 15, 10, 9, 14
début
affiche math.pgcd(121,803)
affiche math.somme(notes)
affiche math.moyenne(notes)
- Et voilà le résultat sur le tableau après lecture du livre :
11
74
12.33333333333333392545227980008349
N’hésitez pas à venir sur le forum si vous voulez plus d’aide pour écrire des greffons en Python :
http://langagelinotte.free.fr/forum/