Maison > Questions et réponses > le corps du texte
迷茫2017-04-18 09:25:15
Vous l'appelez
b.append(6)
print (a, b)
Vous pouvez voir la différence :
Le premier passe une référence
Ce dernier est une copie
大家讲道理2017-04-18 09:25:15
b=a
fera référence à b
l'objet a
a[:]
créera une copie de a, donc b=a[:]
laissera b
faire référence à cette copie, c'est-à-dire que b
et a
font maintenant référence à des objets différents, mais ceux-ci deux objets sont égaux (pas identiques mais équivalents)
C'est pourquoi en surface il ne semble y avoir aucune différence entre les deux, mais si c'est le premier, si on change b
ou a
les deux seront affectés, car ils font référence au même objet, mais ces derniers ne s'affectent pas, car les deux font référence à des objets différents. L'exemple de @hsfzxjy consiste à le souligner, et vous pouvez découvrir la différence en faisant des expériences.
Questions auxquelles j'ai répondu : Python-QA
PHP中文网2017-04-18 09:25:15
Python a une fonction appelée id qui peut obtenir l'adresse d'un objet. Elle sera claire si vous l'imprimez. Direct = est une affectation de référence, faisant référence à l'objet d'origine ; tandis que [:] est une redérivation, qui générera un nouvel objet
a=[1,2,3,4,5]
b=a
c=a[:]
print id(a),id(b),id(c)