Maison >développement back-end >Tutoriel Python >Les types de valeur et les types de référence de Python et la différence entre le passage de valeur et le passage de référence

Les types de valeur et les types de référence de Python et la différence entre le passage de valeur et le passage de référence

巴扎黑
巴扎黑original
2017-07-20 09:28:142060parcourir

Type de valeur :

Contient : chaîne, tuple, valeur, lui-même ne peut pas être modifié

Type de référence :

Contient : liste, dictionnaire, lui-même est autorisé Modifier

a = 2

b = a

a = 3

Modifier la valeur du type de valeur, juste laissez-le pointer vers Une nouvelle adresse mémoire ne changera pas la valeur de la variable b

lista = [1,2]

listb = lista

lista[ 0] = 3

Modifier la valeur du type référence Parce que l'adresse de listb est cohérente avec lista, elle sera également modifiée

Généralement juste pour copier la valeur, vous pouvez. utiliser l'opération de sharding

listb = lista[:]

Le passage par valeur ne transmet que la valeur
Le passage par référence transmet l'adresse mémoire Après modification, la valeur stockée correspondant à la mémoire. l'adresse sera modifiée.
Il est plus clair d'utiliser un tableau comme exemple. Par exemple, si nous définissons un tableau a[]={1,2};
alors a[0]=1,a[1]=2. .
Si nous passons la valeur de l'élément dans le tableau a en tant que paramètre, cela ne fait en fait que transmettre la valeur et n'a aucun effet sur le tableau lui-même.
Si nous passons le pointeur du tableau a en tant que paramètre, alors la fonction. qui est traité peut modifier directement la valeur du tableau a.

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