Dans cet article, nous verrons si si vous modifiez une liste, disons la liste y, cela changera également la liste x. Pour ce faire, regardons d'abord un exemple avec deux listes et essayons d'utiliser append() et print pour la sortie -
x = [] y = x print("Value of y = ",y) print("Value of x = ",x) y.append(25) print("\nAfter changing...") print("Value of y = ",y) print("Value of x = ",x)
('Value of y = ', []) ('Value of x = ', []) After changing... ('Value of y = ', [25]) ('Value of x = ', [25])
Ci-dessus, nous avons vu que la mise à jour de la liste y modifiera également la liste x.
Nous voyons le résultat ci-dessus parce que −
Ci-dessus, écrire y = x ne crée pas de copie de la liste. Il crée une nouvelle variable y qui fait référence au même objet auquel x fait référence. Cela signifie qu’il n’y a qu’un seul objet, la liste, et que x et y y font référence.
Lorsque append() est appelé, le contenu de l'objet variable passe de [] à [25]. Puisque les deux variables pointent vers le même objet, la valeur modifiée est accessible en utilisant l'une ou l'autre variable [25].
Supposons que nous attribuions un objet immuable à x, alors x et y ne seront plus égaux. C'est parce que les entiers sont immuables -
La traduction chinoise de# ints are immutable x = 5 y = x print("Value of y = ",y) print("Value of x = ",x) # We are creating a new object x = x + 1 print("\nAfter changing...") print("Value of y = ",y) print("Value of x = ",x)
('Value of y = ', 5) ('Value of x = ', 5) After changing... ('Value of y = ', 5) ('Value of x = ', 6)
Quand on écrit x = x + 1, on ne change pas l'int 5 en augmentant sa valeur. Au lieu de cela, nous créons un nouvel objet (int 6) et l'attribuons à x. Après cette affectation, nous avons deux objets (int 6 et 5) et deux variables les référençant.
Par conséquent,
Objets mutables - Si nous avons un objet mutable, tel qu'une liste, un dictionnaire, un ensemble, etc., nous pouvons utiliser certaines opérations spécifiques pour le modifier, et toutes les variables qui y font référence verront ce changement.
Objet immuable - Si nous avons un objet immuable comme str, int, tuple, etc., toutes les variables qui y font référence verront toujours la même valeur, mais les opérations qui convertissent cette valeur en une nouvelle valeur renverront toujours un nouvel objet .
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!