Function args
Jean-Michel Caricand
jean-michel.caricand at laposte.net
Fri Apr 9 03:58:13 EDT 2004
J'ai bien compris la leçon.
Merçi pour tout !
"Michel Claveau/Hamster" <No.Spam.mc at No.Spam.mclaveau.No.Spam.com> a écrit
dans le message de news: c55joj$q5f$1 at news-reader1.wanadoo.fr...
> Re
>
> Je redis : en Python, les objets ne sont pas modifiables (sauf listes et
> dictionnaires).
>
> En faisant :
> c = b
> b = a
> a = c
>
> Cela veut dire :
> - c=b création d'un objet auquel on affecte la valeur b, avec une
variable
> c qui pointe dessus
> - b=a création d'un objet auquel on affecte la valeur a, avec une
variable
> b qui pointe dessus
> - a=c création d'un objet auquel on affecte la valeur c, avec une
variable
> a qui pointe dessus
>
> Donc, au résultat, on aura bien eu un échange des valeurs, mais avec
> création d'objets.
>
> D'ailleurs, on peut suivre ce qui se passe, avec id() qui donne
> l'identifiant unique d'un objet.
>
> a=2
> print id (a)
> a=3
> print id(a)
> a+=1
> print id(a)
>
> On voit bien qu'il y a création d'un nouvel objet 'a' à chaque
affectation.
>
> Il faut comprendre qu'il y a deux notions :
> - en Python, une variable est toujours une référence (à un objet)
> - les objets ne sont pas modifiables (sauf listes et dictionnaires)
>
>
>
>
> Si tu veux vraiment utiliser des objets modifiables, passe par une liste,
ou
> un dictionnaire.
> Exemple avec un dictionnaire :
> def permut(x,y):
> d[x],d[y]=d[y],d[x]
>
> d={'a':2, 'b':3}
> print d['a'],d['b']
> print id(d['a']),id(d['b'])
>
> permut('a','b')
> print d['a'],d['b']
> print id(d['a']),id(d['b'])
>
>
> On voit bien, ici, grâce a "id()", qu'ici, il y a eu échange des adresses
> (référence) des éléments internes du dictionnaire.
>
>
> Ce système de gestion des objets par référence, dans Python, est assez
> fabuleux, car une variable peut référencer n'importe quel objet : un
nombre,
> une fonction, un dictionnaire, une liste de liste de liste, une classe,
etc.
> Les possibilités deviennent inouïes. Mais il faut bien maîtriser les
notions
> d'abord.
>
>
>
> @-salutations
>
> Michel Claveau
>
>
>
>
>
>
>
More information about the Python-list
mailing list