Heim > Artikel > Backend-Entwicklung > Ist die Set-Sammlung in Python ein Variablentyp?
Was ist ein veränderliches/unveränderliches Objekt?
Unveränderliches Objekt, der Wert im Speicher, auf den das Objekt zeigt, kann nicht geändert werden. Wenn eine Variable geändert wird, entspricht dies dem Kopieren und anschließenden Ändern des ursprünglichen Werts, da der Wert, auf den sie zeigt, nicht geändert werden kann. Dadurch wird eine neue Adresse geöffnet, und die Variable zeigt auf diese neue Adresse.
Variables Objekt, der Wert im Speicher, auf den dieses Objekt zeigt, kann geändert werden. Wenn eine Variable (genauer gesagt eine Referenz) geändert wird, wird der Wert, auf den sie sich bezieht, direkt geändert. Es erfolgt kein Kopieren und es wird keine neue Adresse geöffnet.
In Python sind numerische Typen (int und float), string str und tuple tuple allesamt unveränderliche Typen. Listen, Wörterbücher und Mengen sind Variablentypen.
Es ist intuitiver, sich den Code anzusehen Sehen Sie sich den Code der Set-Sammlung an:
abb = {1, 2, 3} acc = abb print(id(abb), id(acc)) acc.add(4) print(abb) # {1, 2, 3, 4} print(id(abb), id(acc)) # 相等
Variable Objekte können geändert werden, weil Das Objekt, auf das verwiesen wird, kann geändert werden, sodass keine Kopie erstellt und dann geändert werden muss. Ändern Sie es einfach an Ort und Stelle, sodass kein neuer Speicher geöffnet wird und die ID vor und nach der Änderung unverändert bleibt.
Natürlich ist dies bei unveränderlichen Objekten nicht der Fall. Sie können es damit vergleichen
abc = 3 dd = abc dd = 43 print(abc) # 3,并不随dd的改变而改变
Aber wenn es eine Kopie ist, kopiert es nur den Inhalt und überträgt ihn nicht es ohne Referenz. Dies ist besonders nützlich, wenn Sie die Werte einer Liste verwenden möchten, ohne die ursprüngliche Liste zu ändern.
blist = alist[:] # or alist.copy() print(alist is blist) # False blist.append(4) print(alist) # 还是[1,2 ,3]没有变化
Das obige ist der detaillierte Inhalt vonIst die Set-Sammlung in Python ein Variablentyp?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!