fonction changant une variable non definie comme global
Salut tout le monde.
Pourquoi dans le premier code la fonction arrive à changer la variable définie dans le programme principal, alors que dans le second code il n'y arrive pas.
Lorsque je cherche, je trouve qu'il ne peut être changer ni dans le premier ni dans le second : car les instructions d'une fonction peuvent lire la valeur d'une variable définie au niveau principal mais pas la modifié
Code:
1 2 3 4 5 6 7
|
def fonction():
dic['a']='z'
dic={}
print dic
fonction()
print dic |
Code:
1 2 3 4 5 6 7
|
def fonction():
dic={'a':'z'}
dic={}
print dic
fonction()
print dic |
Pourquoi j'ai posé cette question !
D'abord, je tiens à vous remercier PauseKawa, pour votre réponse bien claire
et instructive.
J'ai posé cette question, car j'ai lu dans le cours "apprendre à programmer avec python" (page 165), que vous devez connaitre certainement, une paragraphe qui est la suivante :
Vous avez appris également que les instructions se trouvant à l'intérieur d'une fonction peuvent accéder aux variables au niveau principal, mais en lecture seulement :elles peuvent utiliser les valeurs de ces variables, mais pas les modifier (à moins de faire appel à l'instruction global)