Passage par référence lors de l'affectation de variables
Dans le langage Python, les objets sont passés par référence. Lors de l'attribution d'une valeur, que l'objet soit nouvellement créé ou existe déjà, la référence (et non la valeur) de l'objet est affectée à la variable.
Pour garder une trace des objets en mémoire, Python utilise une technique simple appelée comptage de références. En d’autres termes, Python enregistre en interne le nombre de références de chaque objet utilisé. Une variable de suivi interne, appelée compteur de référence. Combien de références possède chaque objet, appelé comptage de références. Lorsqu'un objet est créé, un décompte de références est créé et lorsque l'objet n'est plus nécessaire, c'est-à-dire lorsque le décompte de références de l'objet devient 0, il est récupéré.
Lorsqu'un objet est créé et attribué (une référence à celui-ci) à une variable, le nombre de références de l'objet est défini sur 1. Lorsque le même objet (référence) est affecté à une autre variable, ou est passé en paramètre à une fonction, une méthode ou une instance de classe, ou est affecté en tant que membre d'un objet fenêtre, une nouvelle référence à l'objet, ou appelée En tant que alias, il est créé (le nombre de références de l'objet est automatiquement augmenté de 1).
Lorsqu'une référence à un objet est détruite, le nombre de références est décrémenté. L'exemple le plus évident est lorsqu'une référence quitte sa portée, ce qui se produit le plus souvent à la fin d'une fonction, toutes les variables locales sont automatiquement détruites et le nombre de références de l'objet est décrémenté. Lorsqu'une variable est affectée à un autre objet, le nombre de références de l'objet d'origine est automatiquement décrémenté de 1. D'autres façons de faire diminuer le nombre de références d'un objet incluent l'utilisation de l'instruction del pour supprimer une variable, ou lorsqu'un objet est déplacé hors d'un objet fenêtre (ou lorsque le nombre de références de l'objet conteneur lui-même devient 0).
Dans l'exemple ci-dessus, a = 1 fait de la variable un point sur l'objet entier 1, b = a fait que la variable b pointe également sur l'objet entier 1, via l'instruction id( a), id(b) peut voir que l'adresse mémoire pointée par la variable a et la variable b est la même. L'instruction a = 2 attribue le nouvel objet 2 à la variable a. À ce moment, la variable a pointe vers l'objet 2 et la variable b pointe toujours vers l'objet d'origine 1. Grâce aux instructions id(a) et id(b), vous pouvez voir que les adresses mémoire pointées par les variables a et b sont différentes.
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!