Cliquez ici pour l'article sur le blog de gestion Conception d'une excellente méthode de sauvegarde d'objets en python
Ici, je vais écrire sur le traitement des variables python comme vu dans l'interpréteur. Si vous souhaitez exécuter à partir d'un fichier, essayez bien Google.
Je pense que la principale chose à faire est "où vous voulez appeler une variable (où vous faites quelque chose comme var), faites" print var "", mais ...
Remplissez simplement la commande "variable = objet".
test
var = 9
Cependant, "var" est déprimé
test
var #9
Enregistrer la variable (var)
Préparez un pointeur (= travail) et stockez la destination d'enregistrement de l'objet dans une variable.
Affectation de la valeur réelle (objet) (9 dans ce cas) Ceux qui sont inclus dans l'espace mémoire d'Object
Valeur de l'objet (9)
Informations de type (c'est-à-dire type de données, nombre entier)
Compteur de référence (adresse contenant des variables) "
Lors de l'appel, il suffit de se référer à l'objet en utilisant "Pointer" Le pointeur est défini par "=". S'il n'y a pas de =, vous obtiendrez une erreur de syntaxe
erreur "Var1 appelle var, puis var appelle l'objet 9." correct "Var1 fait référence au même objet que la var. Var1 appelle directement l'objet 9."
Tout d'abord, laissez var1 = var. Ici, l'hypothèse est posée comme suit (c'est un système très scientifique ...)
var1**Directement**Référencer l'adresse d'un objet signifie
var1 et var sont (devraient) être complètement indépendants.
Quelque chose de nouveau dans var**Substitution(=)**Et voyez.
Si var est complètement indépendant de var1, vous pouvez affecter un nouvel objet à var
La valeur de var1 ne doit pas changer
Essaie.
test
var = 20
var1 = var
var = 30 #Puisque var1 n'a rien à voir avec var, la valeur de var1 doit rester la même.
var #30
var1 = 20
Comme ils doivent faire référence à la même valeur, s'il s'agit de ** ajouter ** au lieu de ** affectation (=) **, les deux valeurs doivent changer.
test
list1 = [1,2] #list1 [1,2]
list2 = list1 #list2 [1,2]
list1.append(3) # " = "N'est pas utilisé, donc une nouvelle valeur est ajoutée à la destination de référence de list2
list1 #[1,2,3]
list2 #[1,2,3]
Après tout, à moins qu'il ne s'agisse d'une affectation, il semble que la destination de référence de la variable soit exactement la même. Si vous ajoutez ou découpez **, les deux variables (ici list1 et list2) changeront. (Je me fâche ...)
Le fait est que si vous ajoutez list1 = [1,2]
au milieu, ** list1 et list2 seront complètement indépendants **, donc le résultat devrait changer!
test
list1 = [1,2] #list1 [1,2]
list2 = list1 #list2 [1,2]
list = [1,2] #Les valeurs sont les mêmes," = "Est utilisé, donc un objet complètement nouveau est créé et est indépendant (devient non pertinent) de list2.
list1.append(3) # " = "N'est pas utilisé, mais la valeur est ajoutée à l'objet list1 nouvellement créé. list2 n'est pas pertinent, alors laissez-le tel quel
list1 #[1,2,3]
list2 #[1,2]
C'est pourquoi j'en suis personnellement tombé amoureux. (Si vous ne le comprenez pas de votre propre esprit, vous ne le comprendrez jamais même si vous le lisez ...)
Recommended Posts