Co jest zmienne i niezmienne w Pythonie?

Opublikowany: 2022-09-22

W Pythonie każda zmienna przechowuje instancję dowolnego obiektu w dwóch rodzajach, tj. zmiennym i niezmiennym. Unikalny identyfikator obiektu jest przypisywany do obiektu za każdym razem, gdy jest on tworzony. Środowisko wykonawcze definiuje typ obiektu i nie można go później zmienić.

Jednak zmienny jest obiektem zmiennym. Kiedy mówimy mutable, oznacza to, że wewnętrzny stan obiektu może zostać zmutowany. Jednocześnie stan obiektu, którego nie można zmienić po utworzeniu, jest obiektem niezmiennym. Zarówno stany mutowalne, jak i niezmienne są integralną częścią struktury danych Pythona.

Cecha zmienności obiektów w Pythonie sprawia, że ​​jest to język dynamicznie typowany. Mutable i Immutable w Pythonie są dość istotne jako koncepcja, ale często są mylone ze względu na ich nieprzechodni charakter niezmienności.

Dowiedzmy się o nich wszystkiego i najważniejszych różnicach.

Zapoznaj się z naszymi kursami online z zakresu nauki o danych, aby podnieść swoje umiejętności

Spis treści

Najważniejsze umiejętności w zakresie analizy danych, których można nauczyć się podnosić umiejętności

SL. Nie Najlepsze umiejętności w zakresie analizy danych do nauki w 2022 r.
1 Internetowe kursy analizy danych Kursy online dotyczące statystyki wnioskowania
2 Kursy online dotyczące testowania hipotez Kursy online dotyczące regresji logistycznej
3 Kursy regresji liniowej Algebra liniowa do analizy kursów online

Zmienny stan w Pythonie

Słowo „mutowalny” bezpośrednio przekłada się na „zmienny” lub coś, co można „zmutować”. Definiuje obiekt otwarty na zmiany, aw Pythonie „mutable” odnosi się do zdolności obiektu do zmiany wartości. Obiekty te często przechowują zbiory danych i zawierają wbudowane listy typów, zestawy, słowniki i klasy zdefiniowane przez użytkownika.

Niezmienny stan definicji w Pythonie

Niezmienność w Pythonie występuje wtedy, gdy nie możesz zmienić typu obiektu w czasie. Jeśli nie można zmienić wartości obiektu w Pythonie, jest on określany jako obiekt niezmienny. Po utworzeniu niezmiennego obiektu jego wartość pozostaje stała i niezmienna. Niezmienne wbudowane obiekty typu to liczby, ciągi, krotki, zamrożone zestawy i klasy zdefiniowane przez użytkownika.

Obiekty w Pythonie

Zanim zagłębimy się w zmienność i niezmienność w Pythonie, najpierw dowiedzmy się, czym są obiekty. W Pythonie wszystko jest uważane za obiekt, a każdy obiekt ma trzy atrybuty:

  • Tożsamość: Odnosi się do adresu obiektu w pamięci komputera.
  • Typ : odnosi się do tworzonego typu obiektu. Na przykład liczba całkowita, łańcuch, lista i tym podobne.
  • Wartość : odnosi się do wartości przechowywanej przez obiekt. Na przykład List=[5,6,7] przechowuje liczby 5, 6 i 7.

Nawet jeśli ID i Typ obiektu nie mogą ulec zmianie po utworzeniu, wartości są otwarte na zmiany dla obiektów Mutable.

Obiekty mutowalne w Pythonie

Obiekty mutowalne to obiekty w Pythonie, które można mutować lub zmieniać. Kody służą lepiej w nauczaniu o realizacji tych obiektów. Dlatego spójrzmy na kilka kodów i spróbujmy lepiej zrozumieć zmienne obiekty:

  • Za sporządzenie listy zawierającej nazwy owoców

owoce = ['Mango', 'Papaja', 'Pomarańczowy']

  • Do drukowania elementów z listy owoców oddzielonych przecinkiem i spacją

dla owoców w owocach:

print(owoc, koniec=', ')

Wyjście [1]: Mango, Papaja, Pomarańcza

  • Do drukowania lokalizacji obiektu utworzonego w adresie pamięci w formacie szesnastkowym

Zapoznaj się z naszymi popularnymi kursami online z zakresu nauki o danych

Executive Post Graduate Program in Data Science z IIITB Profesjonalny program certyfikatów w dziedzinie nauki o danych do podejmowania decyzji biznesowych Master of Science in Data Science z University of Arizona
Zaawansowany program certyfikacji w dziedzinie nauki o danych z IIITB Profesjonalny program certyfikacji w dziedzinie nauki o danych i analityki biznesowej Uniwersytetu Maryland Internetowe kursy nauki o danych

print(hex(id(owoce)))

Wyjście [2]: 0x1691d7de8c8

  • Dodanie nowego owocu do listy „owoce”

fruit.append('Winogrona')

  • Do drukowania elementów znajdujących się na liście „owoce”, oddzielonych przecinkiem i spacją

dla owoców w owocach:

print(owoc, koniec=', ')

Wyjście [3]: Mango, Papaja, Pomarańcza, Winogrona

  • Do drukowania lokalizacji obiektu utworzonego w adresie pamięci w formacie szesnastkowym

print(hex(id(owoce)))

Wyjście [4]: ​​0x1691d7de8c8

Przykład pokazuje, że stan wewnętrzny obiektu „owoce” można łatwo zmienić, dodając do niego jeszcze jeden owoc „Winogrona”. Jednak adres pamięci obiektu pozostaje ten sam, co dowodzi, że nie trzeba tworzyć nowego obiektu. Ten sam obiekt można raczej zmienić lub zmutować. Ten przykład pokazuje, że obiekt o nazwie zmiennej referencyjnej „owoce”, typ listy, jest zmienny.

Niezmienne obiekty w Pythonie

Obiekty niezmienne w Pythonie to obiekty, których wartości nie można zmienić. Prześledźmy prosty kod, aby lepiej zrozumieć, czym są niezmienne obiekty i jak działają. Kod podano poniżej:-

  • Za stworzenie krotki zawierającej angielską nazwę miesięcy

miesiące= 'styczeń', 'luty', 'marzec', 'kwiecień', 'maj', 'czerwiec', 'lipiec', 'sierpień'

  • Do drukowania elementów krotki miesięcy

drukuj (miesiące)

Wyjście [1]: („styczeń”, „luty”, „marzec”, „kwiecień”, „maj”, „czerwiec”, „lipiec”, „sierpień”)

  • Do drukowania lokalizacji obiektu, która jest tworzona w adresie pamięci w formacie szesnastkowym

print(hex(id(miesiące)))

Wyjście [2]: 0x1691cc35090

  • Należy zauważyć, że krotki są niezmienne; dlatego nie zawierają więcej nowych elementów. Dlatego musisz użyć scalania krotek z operatorem # +, aby dodać nowy wyimaginowany miesiąc w krotce „miesiące”.

miesiące += 'Pythonuary'

  • Do drukowania elementów krotki „miesiące”.

drukuj (miesiące)

Wyjście [3]: („styczeń”, „luty”, „marzec”, „kwiecień”, „maj”, „czerwiec”, „lipiec”, „sierpień”, „Pythonuary”)

  • Do drukowania lokalizacji obiektu utworzonego w adresie pamięci w formacie szesnastkowym

print(hex(id(miesiące)))

Wyjście [4]: ​​0x1691cc8ad68

Przeczytaj nasze popularne artykuły o Data Science

Ścieżka kariery w Data Science: kompleksowy przewodnik po karierze Rozwój kariery w dziedzinie Data Science: Nadeszła przyszłość pracy Dlaczego nauka o danych jest ważna? 8 sposobów, w jakie nauka o danych wnosi wartość do biznesu
Znaczenie nauki o danych dla menedżerów Ostateczna ściągawka do nauki o danych, którą każdy badacz danych powinien mieć 6 najważniejszych powodów, dla których warto zostać analitykiem danych
Dzień z życia Data Scientist: co robią? Obalamy mit: analiza danych nie wymaga kodowania Business Intelligence vs Data Science: Jakie są różnice?

Ten przykład udowadnia, że ​​nazwy zmiennych można łatwo wykorzystać do odwoływania się do obiektu, rodzaju krotki składającej się z ośmiu elementów. Jednak identyfikator lokalizacji pamięci starej i nowej krotki nie jest taki sam. W związku z tym stan wewnętrzny obiektu „miesiące” nie mógł zostać zmieniony. Dlatego menedżer programu Python utworzył nowy obiekt w adresie pamięci. Dodatkowo zmienna nazwa „miesiące” również odwołuje się do nowego obiektu z dziewięcioma elementami. Stąd udowodnienie, że krotka, obiekt o nazwie zmiennej referencyjnej „miesiące”, jest obiektem niezmiennym.

Wniosek

Obiekty mutowalne służą przede wszystkim do umożliwienia przyszłych aktualizacji. Z drugiej strony niezmienność oferuje również wiele skutecznych i praktycznych zastosowań dla różnych wrażliwych zadań w miejscu skupionym na sieci, umożliwiając przetwarzanie równoległe. Obiekty niezmienne, zapieczętuj wartości i upewnij się, że żaden z wątków nie wywoła nadpisania/aktualizacji danych. Świetnie nadaje się do pisania trwałych kodów, które nie będą wymagały zmian w przyszłości.

Jeśli jesteś początkującym programistą lub entuzjastą nauki o danych, poznanie zmiennych i niezmiennych obiektów w Pythonie pomoże ci wybrać tę dziedzinę jako swoją karierę. Najlepszym sposobem, aby się o tym dowiedzieć, jest zapisanie się na Executive Post Graduate Program in Data Science na upGrad.

Kurs jest tworzony pod okiem ekspertów, dostarczając dogłębną wiedzę na temat popularnych tematów, aby przygotować tysiące uczniów do przyszłej kariery.

Q1. Jakie są znaczące różnice między mutowalnym a niezmiennym w Pythonie?

Odpowiedź: Stan lub wartość obiektu jest otwarta na modyfikację po utworzeniu w zmiennym Stan lub wartość obiektu nie jest otwarta na modyfikację po utworzeniu w niezmiennym Obiekty mutable nie są bezpieczne wątkowo. Obiekty niezmienne są całkowicie bezpieczne dla wątków Klasy Mutable nie są ostateczne. Zanim utworzysz niezmienny obiekt, musisz uczynić klasę ostateczną.

Q2. Czym w Pythonie są zmienne i niezmienne typy danych?

Odpowiedź: Zmienne typy danych w Pythonie to listy, zestaw, słownik i klasy zdefiniowane przez użytkownika, a niezmienne typy danych to int, dziesiętny, zmiennoprzecinkowy, bool, krotka, łańcuch i zakres.

Q3. Czy listy są zmienne w Pythonie?

Odpowiedź: W Pythonie listy to zmienne typy danych z łatwo modyfikowalnymi elementami. Dodatkowo możesz podmieniać poszczególne elementy, a nawet zmieniać kolejność elementów po utworzeniu listy.