Passage d'arguments à une fonction Python - Python - Programmation
Marsh Posté le 12-06-2005 à 16:32:00
C'est normal, les arguments en Python sont toujours passés par valeur, pas par référence. Les valeurs en question sont des références, mais ces références ne peuvent être changées car elles sont passées par valeur. Pour les types mutables, on peut toutefois modifier la valeur référencée, mais pour les types immutables (comme les entiers ou les strings) c'est impossible. Je crois que c'est la même chose en Java, d'ailleurs.
Exemple:
Code :
|
Le premier exemple fonctionne mais ne fait pas ce que tu attends, car c'est une copie de la variable locale à la fonction qui est incrémentée. Le deuxième exemple fonctionne car 'list' est un type mutable. Le troisième exemple ne fonctionne pas car 'tuple' est un type immutable...
Marsh Posté le 13-06-2005 à 01:28:43
Merci, en fait j'ai donc été obligé de passer une liste à un élément au lieu d'un entier à ma fonction pour que celà marche, maintenant c'est bon.
Code :
|
Thanks.
Bouba
Marsh Posté le 12-06-2005 à 14:20:37
Bonjour, j'ai un problème, je veux passer une variable en argument d'une fonction Python, la fonction doit modifier cette variable, mais après l'appel de la fonction cette variable reste inchangée.
Voici le code python.
Voici l'illustration du problème dans Python
quand je fais x >> y, la fonction __rshift__ est bien appelée et la variable var s'affiche, mais pourquoi y n'est pas modifié puisque y correspond à l'argument passé donc à var ?
Merci.
Bouba