Maison > Article > développement back-end > Comment modifier des entiers dans une fonction en Python malgré la sémantique de passage par valeur ?
Comprendre le passage de variables en Python
Passer un entier par référence pose un défi unique en Python, car le langage fonctionne en utilisant le passage sémantique des valeurs. Contrairement aux types de référence dans des langages comme Java, les entiers en Python sont des objets immuables. Cela signifie que lorsque vous transmettez un entier à une fonction, toute modification qui y est apportée dans cette fonction n'affectera pas la valeur d'origine.
Contourner le passage par valeur avec les conteneurs
Pour imiter le comportement de passage par référence, une solution de contournement consiste à transmettre l'entier dans un conteneur mutable, tel qu'une liste. Voici un exemple :
def change(x): x[0] = 3 x = [1] change(x) print(x) # Output: [3]
En enfermant l'entier dans une liste, vous pouvez modifier sa valeur en accédant au premier élément du conteneur. Cependant, cette approche a ses limites et peut être considérée comme un hack.
Valeurs de retour : une alternative au passage par référence
Une manière plus idiomatique d'atteindre l'objectif le résultat souhaité est de renvoyer la valeur modifiée de la fonction. Cela vous permet de réaffecter la variable d'origine en dehors de la fonction :
def multiply_by_2(x): return 2*x x = 1 x = multiply_by_2(x)
Dans ce scénario, la fonction multiplier_by_2 prend l'entier et renvoie le résultat, qui est ensuite affecté à la variable d'origine x.
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!