Zmienne

Kategorie: python

W pythonie (w uproszczeniu) pracujemy na 2 typach danych. Dane modyfikowalne (mutable) oraz dane "stałe" (immutable).

Dane modyfikowalne, takie jak słowniki i listy mogą zostać zmienione "w miejscu" np. tak:

    a = {'raz': 1}
    id(a)
>>> 140536046944336
    a['dwa'] = 2
    a
>>> {'dwa': 2, 'raz': 1}
    id(a)
>>> 140536046944336

Jak widzimy, identity (w przypadku CPythona - adres w pamięci) nie zmieniło się, pomimo modyfikacji danych.

Dane "stałe" takie jak numery, ciągi znaków oraz tuple w przypadku próby modyfikacji utworzy nową "zmienną" która będzie miała swoje własne identity.

Dlatego w przypadku słownika mamy metodę update, która zmodyfikuje słownik i nie zwróci niczego, a w przypadku stringa mamy metodę replace która tworzy nowego stringa (musimy mu nadać nazwę).