Appel de fonctions Python par référence (dupliquer)
Dans de nombreux langages de programmation, les paramètres peuvent être transmis par valeur ou par référence à l'aide de mots réservés spécifiques . Cependant, en Python, lorsqu'un paramètre est passé à une fonction, il ne modifie jamais la valeur de la variable d'origine dans la fonction appelante.
Exemple 1 : Appel par valeur
k = 2
def foo(n):
n *= n
return n
j = foo(k)
print(j) # 4
print(k) # 2
Ici, la valeur de k reste inchangée après l'appel de la fonction foo car Python passe les arguments par valeur.
Exemple 2 : Appel par Global
Pour modifier la variable dans la fonction appelante, le mot-clé global peut être utilisé.
n = 0
def foo():
global n
n *= n
return n
Dans ce cas, le mot-clé global permet de modifier n dans la fonction foo, et sa valeur sera mise à jour dans la fonction appelante.
Pass by Object Reference in Python
Python, cependant, ne suit pas strictement l'appel par valeur ou l'appel par référence. Au lieu de cela, il utilise un concept appelé passer par référence d'objet.
En Python, les variables font référence à des objets, et non aux objets eux-mêmes. Ainsi, lorsqu'une variable est passée à une fonction, elle transmet une référence à l'objet, et non à l'objet lui-même.
Par exemple :
def append_one(li):
li.append(1)
x = [0]
append_one(x)
print(x) # [0, 1]
Dans ce code, la fonction append_one ajoute 1 à la liste x. Étant donné que la liste est transmise par référence d'objet, toute modification apportée à la liste dans la fonction sera reflétée dans la fonction appelante.
Pass by Reference vs Pass by Object Reference
En conclusion, Python suit le passage par référence d'objet, où les variables font référence à des objets plutôt que des objets eux-mêmes. Cela permet aux fonctions de modifier les objets qui leur sont transmis, mais les modifications apportées aux références de variables elles-mêmes ne sont pas propagées à la fonction appelante.
Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.
Copyright© 2022 湘ICP备2022001581号-3