Co to jest niezmienność (immutability) w Pythonie?

Niezmienność w Pythonie odnosi się do właściwości niektórych typów danych, które nie mogą być zmienione po ich utworzeniu. W językach programowania, w tym w Pythonie, typy danych dzielą się na zmienne (mutable) i niezmienne (immutable). Zrozumienie tej koncepcji jest kluczowe dla efektywnego i bezbłędnego pisania kodu. W tym artykule omówimy, co oznacza niezmienność w Pythonie i jakie typy danych są niezmienne, przedstawiając przy tym praktyczny przykład.

Przykład niezmienności w Pythonie

Rozważmy typy danych w Pythonie, takie jak ciągi znaków (string) i tuple, które są niezmienne, oraz listy, które są zmienne. Poniższy przykład pokazuje, jak próba modyfikacji niezmiennej wartości skutkuje błędem, w przeciwieństwie do zmiennej wartości, która może być zmieniona.

# Przykład niezmiennej wartości - ciąg znaków
immutable_string = "Hello"
try:
    immutable_string[0] = "M"  # Próba zmiany pierwszego znaku
except TypeError:
    print("Nie można zmienić wartości ciągu znaków")

# Przykład zmiennej wartości - lista
mutable_list = ["H", "e", "l", "l", "o"]
mutable_list[0] = "M"  # Zmiana pierwszego elementu listy
print(mutable_list)  # Wypisze: ['M', 'e', 'l', 'l', 'o']

# Przykład niezmiennej wartości - tuple
immutable_tuple = ("Hello", "World")
try:
    immutable_tuple[0] = "Goodbye"  # Próba zmiany pierwszego elementu
except TypeError:
    print("Nie można zmienić wartości tuple")

W pierwszym przypadku, próba zmiany ciągu znaków skutkuje wyjątkiem TypeError, ponieważ ciągi znaków w Pythonie są niezmienne. Analogicznie, próba zmiany wartości w krotce (tuple) również kończy się niepowodzeniem z tego samego powodu. W przeciwieństwie do nich, listy są zmienne, co umożliwia zmianę ich elementów.

Podsumowanie

Niezmienność w Pythonie jest fundamentalną koncepcją, która wpływa na sposób, w jaki programiści powinni podchodzić do pracy z różnymi typami danych. Typy danych immutable, takie jak ciągi znaków i tuple, nie mogą być zmieniane po utworzeniu, co zapewnia bezpieczeństwo danych i unikanie niechcianych efektów ubocznych. Zrozumienie różnicy między typami danych mutable i immutable pozwala na pisanie bardziej przewidywalnego i stabilnego kodu.

Jeżeli chcesz przyśpieszyć swoją naukę tworzenia stron chciałbym polecić mój kurs video Python w którym nauczysz się tego języka od podstaw do zaawansowanych jego aspektów.

Scroll to Top