# Paramètre de la fonction ## Paramètre positionnel Déclarons un calcul avec paramètre : ``` no ``` Créons la fonction correspondante : ``` def return_value(value): return value ``` La variable aura donc "no" comme valeur puisque le paramètre aura la valeur fixe "no". ## Paramètre nommée Déclarons une contrainte avec un paramètre nommée : ``` no ``` Dans ce cas la fonction return_value sera exécuté avec le paramètre nommé "valeur" dont sa valeur sera "no". ## Paramètre de type texte Dans l'exemple précédent : ``` no ``` Le paramètre est de type texte (ou "string"). ## Paramètre de type nombre Déclarons un calcul avec paramètre avec un nombre : ``` 1 ``` Créons la fonction correspondante : ``` def return_value_with_number(value): if value == 1: return 'no' return 'yes' ``` La variable aura donc "no" comme valeur puisque le paramètre aura la valeur fixe "1". ## Paramètre de type variable Créons deux variables avec une contrainte de type variable qui contient le nom de la variable dont sa valeur sera utilisé comme paramètre : ``` 1 my_variable ``` Si l'utilisateur laisse la valeur 1 à "my_variable", la valeur par défault de la variable "my_calculated_variable" sera "no". Si la valeur de "my_variable" est différent de 1, la valeur par défaut de la variable "my_calculated_variable" sera "yes". ### Paramètre avec variable potentiellement non existante Suivant le contexte une variable peut exister ou ne pas exister. Un paramètre de type "variable" peut être "optional" : ``` unknow_variable ``` Dans ce cas la fonction "return_value" est exécuté sans paramètre. Si maintenant on créé un nouveau dictionnaire en créant cette variable, la fonction sera exécuté avec le paramètre. ### Paramètre avec variable potentiellement désactivée FIXME : Il n'y a pas spécialement de test ! ### Paramètre avec variable suiveuse [variable suiveuse](variable/leadership.md) FIXME : - tests/flattener_dicos/10leadership_append/00-base.xml - tests/flattener_dicos/10leadership_auto/00-base.xml - tests/flattener_dicos/10leadership_autoleader/00-base.xml - tests/flattener_dicos/10leadership_autoleader_expert/00-base.xml ### Paramètre avec variable dynamique Il est possible de faire un calcul avec comme paramètre [une variable d'une famille dynamique](family/auto.md) mais pour une suffix particulier : ``` val1 val2 val vardynval1 ``` Dans ce cas, valeur du paramètre de la fonction "return_value" sera la valeur de la variable "vardyn" avec le suffix "val1". ## Paramètre de type information Le paramètre peut être la valeur est issue d'une information de la configuration. Créons une variable et la contrainte : ``` server_name ``` Dans ce cas, l'information de la configuration "server_name" sera utilisé comme valeur de la variable "my_calculated_variable". Si l'information n'existe pas, la paramètre aura la valeur "None".