Maison >développement back-end >Tutoriel Python >Comment modifier un entier passé à une fonction en Python ?

Comment modifier un entier passé à une fonction en Python ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-11-06 01:00:02947parcourir

How can I modify an integer passed to a function in Python?

Passer un entier par référence en Python

En Python, les entiers sont immuables, ce qui signifie qu'une fois créés, leur valeur ne peut pas être modifiée. Cela pose la question de savoir comment passer un entier par référence, permettant aux modifications apportées au sein d'une fonction d'être répercutées dans la variable d'origine.

Passer un conteneur mutable

Pendant que il n'est pas possible de passer un entier par référence directement, vous pouvez le passer dans un conteneur mutable, comme une liste :

def change(x):
    x[0] = 3

x = [1]
change(x)
print(x)

Sortie :

[3]

Dans cet exemple, nous créer une liste x contenant un seul élément. Nous passons ensuite x à la fonction change, qui modifie la valeur à l'index 0. Les listes étant mutables, ce changement persiste même après le retour de la fonction.

Renvoi d'un nouvel objet

Une autre option consiste à renvoyer un nouvel objet avec la valeur modifiée de la fonction :

def multiply_by_2(x):
    return 2 * x

x = 1
x = multiply_by_2(x)

Dans ce cas, la fonction multiplier_by_2 renvoie un nouvel objet avec la valeur doublée, qui est ensuite attribué à x . L'entier d'origine x reste inchangé.

Bonnes pratiques

Lorsque vous transmettez des entiers à des fonctions, tenez compte des bonnes pratiques suivantes :

  • Si vous devez modifier la valeur dans la variable d'origine, utilisez un conteneur mutable comme décrit ci-dessus.
  • Si vous n'avez besoin d'utiliser que la valeur modifiée, renvoyez un nouvel objet à partir de la fonction.
  • Évitez d'utiliser variables globales, car cela peut entraîner des conflits potentiels et des problèmes de lisibilité du code.

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn