.. _u4.11.03-exemples: Exemples d’utilisation ====================== L'utilisation standard de cette procédure est : .. code-block:: python POURSUITE() Python ne sauvegarde pas les fonctions et classes définies dans le fichier principal (il se souvient simplement dans quel module Python elles ont été définies). C'est donc le cas du fichier de commandes de code_aster. Pour utiliser des fonctions ou classes et les retrouver en poursuite, il faut les définir dans un module externe: - Soit le module userpkg/usermod.py: .. code-block:: python def pyfunc(x): return x * 2 - On ferait dans le premier jeu de commandes: .. code-block:: python DEBUT() from userpkg import usermod form = FORMULE(NOM_PARA='X', VALE='pyfunc(X)', pyfunc=usermod.pyfunc) assert form(2) == 4 FIN() - Puis: .. code-block:: python POURSUITE() assert form(2) == 4 FIN() Pour cela, il suffit d'ajouter dans l'étude le répertoire ``userpkg`` de type ``nom``. Il faut bien comprendre que, lors de la relecture, Python va chercher à importer le module ``userpkg.usermod``. Il doit donc le retrouver au même endroit. De plus, en important ce module, Python exécute les instructions qu'il y trouve. Pour cette raison, **il est déconseillé de créer des concepts dans le corps principal d'un module importé** (car ils seront créés à chaque import et encombreront la base). Il faut le faire dans des fonctions qui seront uniquement exécutées sur demande.