5. Exemples d’utilisation#

L’utilisation standard de cette procédure est :

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:

    def pyfunc(x):
        return x * 2
    
  • On ferait dans le premier jeu de commandes:

    DEBUT()
    
    from userpkg import usermod
    
    form = FORMULE(NOM_PARA='X', VALE='pyfunc(X)', pyfunc=usermod.pyfunc)
    assert form(2) == 4
    
    FIN()
    
  • Puis:

    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.