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.
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
Vous l'appelez
Vous pouvez voir la différence :
Le premier passe une référence
Ce dernier est une copie
référencé parb=a
fera référence àb
l'objeta
a[:]
créera une copie de a, doncb=a[:]
laisserab
faire référence à cette copie, c'est-à-dire queb
eta
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
oua
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
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