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.
3- l’étonnement.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 >>>
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
Partager