decouvrir la logique du systeme de fonction
Bonjours a tous.
j'apprends seul et je trouve une attitude du langage qui va contre ce qui a priori me semblerait devoir être logique.
Ci dessous je copie quelques lignes de l’éditeur de texte, et encore en dessous le résultat dans l’interpréteur, puis enfin l'objet de mon etonnement.
1- le texte.
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35
| a_var = 10
# Ici "a_var" est le nom d'une variable globale
b_var = 15
e_var = 25
def a_func(a_var):
# ici le "a_var" est le nom de l'argument de la fonction "a_func"
print("in a_func a_var = ", a_var)
# ici a_var n'a pas été défini. dans la fonction, donc il fait appel a a_var
# comme valeur globale definie ci-dessus.
b_var = 100 + a_var
# ici b_var n'est plus la valeur globale citée ci-dessus mais une nouvelle
# valeur, locale.
d_var = 2 * a_var
print("in a_func b_var = ", b_var)
print("in a_func d_var = ", d_var)
print("in a_func e_var = ", e_var)
return(b_var + 10)
c_var = a_func(b_var)
print("a_var = ", a_var)
print("b_var = ", b_var)
print("c_var = ", c_var)
2- l’interprétation
>>>
in a_func a_var = 15
in a_func b_var = 115
in a_func d_var = 30
in a_func e_var = 25
a_var = 10
b_var = 15
c_var = 125
>>> |
3- l’étonnement.
pourquoi a_var prend la valeur de b_var plutôt que celle de e_var, même si en haut j'inverse l'ordre de la présentations de ces variables globales.
c'est sûrement simple. J'ai loupe un des principes
en commentaire sont inscrites les choses que j'ai cru comprendre. C'est une question sans arrière pensée. moi j'aurais mis a = 15 - 100
Fin et rendez-vous au prochain episode
Eh bien merci beaucoup.
Et a tres prochainement sur ce beau forum.