Sobes.tech
Middle

Hogyan változik a változtathatóság tulajdonsága, amikor egy módosítható listát beágyazunk egy változatlan objektumba Pythonban?

sobes.tech MI

Válasz az MI-től

Pythonban egy objektum változhatatlansága az objektumra vonatkozik, nem pedig a tartalomra, amelyre hivatkozik. Ha van egy változhatatlan objektumod (például egy tuple), amelyben egy módosítható lista található, akkor magát a tuple-t nem lehet megváltoztatni (például elemek cseréje vagy törlése nem lehetséges), de a belső lista tartalmát módosíthatod.

Ez azt jelenti, hogy egy változhatatlan objektum garantálja, hogy a belső lista hivatkozása nem fog megváltozni, de maga a lista módosítható marad. Ez váratlan viselkedéshez vezethet, ha azt feltételezzük, hogy az egész objektum teljesen változatlan.

Példa:

immutable_tuple = (1, 2, [3, 4])

# Nem lehet megváltoztatni a tuple-t:
# immutable_tuple[0] = 10  # Hiba

# De a belső lista tartalmát módosíthatod:
immutable_tuple[2].append(5)
print(immutable_tuple)  # (1, 2, [3, 4, 5])

Így a belső objektumok módosíthatósága megmarad, még akkor is, ha a külső objektum változatlan.