Passage par référence en Python : un aperçu et des solutions de contournement
On suppose souvent que tout en Python est transmis par valeur, laissant les programmeurs se demander s'il existe un moyen de passer par référence. Cet article explore les subtilités de la transmission d'entiers dans des fonctions par référence et propose des solutions de contournement pratiques.
Immuabilité des entiers
Bien que l'on puisse être tenté de comparer le passage de Python comportement de valeur au passage par référence de Java pour les types référence, il est important de noter qu'en Python, les entiers sont immuables. Cela signifie que vous ne pouvez pas modifier directement la valeur d'un entier.
Solution : utiliser des conteneurs
Une solution consiste à transmettre l'entier dans un conteneur, tel qu'une liste, qui peut être modifié. Par exemple, considérons le code suivant :
def change(x): x[0] = 3 x = [1] change(x) print(x)
Ici, l'entier est enveloppé dans une liste, qui est ensuite transmise à la fonction de changement. À l'intérieur de la fonction, l'élément de la liste est modifié, modifiant ainsi l'entier d'origine.
Renvoyer la valeur modifiée
Une autre approche consiste à demander à la fonction de renvoyer la valeur modifiée, qui peut ensuite être affecté à la variable d'origine. Ceci est démontré ci-dessous :
def multiply_by_2(x): return 2*x x = 1 x = multiply_by_2(x)
Dans ce cas, la fonction multiplier_by_2 renvoie la valeur modifiée, qui est ensuite stockée dans x.
Bonnes pratiques
Bien que les solutions de contournement ci-dessus vous permettent d'émuler le comportement de passage par référence, il est important de prendre en compte les bonnes pratiques suivantes :
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!