Function args
Yermat
loic at fejoz.net
Fri Apr 9 04:05:48 EDT 2004
Jean-Michel Caricand wrote:
> Bonjour Michel et merçi pour la réponse très rapide. Je tiens à préciser que
> nous développons en interne
> en langage Perl. Ma question peut donc sembler bête pour des programmeurs
> Python.
>
> Après maintes recherches, je n'ai pas trouvé d'exemples me permettant de
> comprendre le mécanisme employé
> par Python pour passer un simple nombre à une fonction et le modifier
> réellement.
>
> Imaginons que je veuille écrire une fonction qui permute deux variables,
> j'écris :
>
> def permuter(a,b):
> c = b
> b = a
> a = c
>
> Si tout est objet, donc passé par référence a et b devraient être réellement
> modifier ? Pourtant ce n'est pas le cas.
>
> [...]
En plus "permuter" est un mauvais exemple psuique l'on peut faire :
>>> a = 1
>>> b = 2
>>> print a, b
1 2
>>> (a, b) = (b, a)
>>> print a, b
2 1
En gros, tous les types primitifs de python sont "expansés", autrement
dit quand on les affecte à une autre variable, c'est une copie.
Tous les types complexes sont des références.
Yermat
More information about the Python-list
mailing list