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