Écrire un greffon en Python pour le langage Linotte
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 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/