Pyton

Zmienny vs. Niezmienne obiekty w Pythonie

Zmienny vs. Niezmienne obiekty w Pythonie

Mówi się, że Python jest najbardziej niesamowitym językiem, ponieważ wiele osób wybiera go jako swój pierwszy język programowania ze względu na jego elegancję i prostotę. Wdzięczność dla szerokiej społeczności, nadmiaru pakietów i spójnej składni, doświadczeni profesjonaliści również używają Pythona. Chociaż jest jedna rzecz, która wydaje się irytować zarówno początkujących, jak i niektórych profesjonalnych programistów - obiekty z Pythona.

Zmienny vs. Niezmienny

Zmienny podmioty mogą zmieniać ich stan lub substancja opisać rozbieżność i niezmienny podmioty nie mogą zmienić swojego stanu ani treści. Więc kiedy tworzony jest obiekt, specjalny identyfikator obiektu jest przydzielony. W czasie wykonywania określony jest rodzaj obiektu i nie można go później zaktualizować. Wbudowane formularze, takie jak int, float, bool, str, tuple i zmienne Unicode są niezmienne. Obiekty takie jak lista, zestaw, tablice bajtów i słownik wbudowanych kategorii są zmienne.

Zrozumienie funkcji identyfikatora i typu

Zintegrowany ID() metoda zawiera id obiektu jako liczbę całkowitą. Ta liczba całkowita zwykle odnosi się do miejsca przechowywania obiektu. „jest' operator wiąże ze sobą tożsamości dwóch obiektów. Zintegrowana funkcja, rodzaj(), zwraca rodzaj obiektu. Porównaj dwie zmienne 'x' i 'tak', o tej samej wartości, przy użyciu operatora równości 'x == y', wypisze Prawdziwe. Używając funkcja id(), porównaliśmy te adresy pamięci obu zmiennych, to wyprowadzi Fałszywe ponieważ obie zmienne są różne i znajdują się w różnych lokalizacjach pamięci, chociaż wartości w nich zawarte są takie same.

Utwórz kolejną zmienną 'z' co wskazuje na identyczny podmiot, który 'x' kieruje do, przy użyciu operatora przypisania '='. Używając 'jest' operator stwierdziliśmy, że obaj wskazują ten sam obiekt i mają te same adresy pamięci.

Niezmienne typy zmiennych

Przyjrzyjmy się niektórym niezmiennym typom zmiennych.

Liczba całkowita typu danych

Zdefiniujmy zmienną 'x' mający wartość '10'. Wbudowany id() metoda służy do określania lokalizacji 'x'w pamięci i rodzaj() służy do identyfikacji jego rodzaju. Kiedy próbujemy zmienić wartość 'x', jest pomyślnie zmieniany, chociaż adres pamięci zwraca się inaczej different. Dzieje się tak, ponieważ w rzeczywistości nie zmieniliśmy wartości „x', ale stworzyliśmy inny obiekt o tej samej nazwie 'x' i przypisz mu inną wartość. Połączyliśmy nazwę 'x'do nowej wartości'. Teraz, kiedykolwiek zadzwoniszx' wypisze nową wartość.

Typ danych ciągu

To samo dla typu danych string, nie możemy modyfikować istniejącego zmienna ale musimy Stwórz nowy o tej samej nazwie. Mamy tutaj zdefiniowany zmienna łańcuchowa 'x' i chcesz dodać 'w' do jego zerowych indeksów. To wyjdzie Wpisz błąd, pokazując, że obiekt ciągu nie obsługuje aktualizacji.

Typ danych krotki

Rzuć okiem na typ krotki zmienna, zdefiniowaliśmy krotka z 4 wartościami. Wykorzystaliśmy funkcja id() wyprowadzić jego adres. Kiedy chcemy zmienić jego wartość na 0 indeksów, to daje Wpisz błąd ta krotka nie obsługuje przypisywania ani aktualizacji elementów.

Wręcz przeciwnie, możesz aktualizacja cała krotka, definiując ją z zadraśnięcie. Teraz za każdym razem, gdy to sprawdzisz, znajdziesz nową wartość i nowy adres.

Float DataType

Mamy zmienną typu float 'x'. Używając funkcja id(), musimy znaleźć jego adres. Kiedy chcemy zmienić jego wartość na indeks 1, to daje Wpisz błąd ta liczba zmiennoprzecinkowa nie obsługuje modyfikacji przedmiotów.

I odwrotnie, zaktualizowaliśmy pływak definiując to ponownie. Teraz, ilekroć to nazwiemy, znajdziemy nową wartość i nowy adres.

Zmienne typy zmiennych

Teraz przyjrzymy się niektórym typom zmiennych mutowalnych.

Wyświetl typ danych

Zdefiniowaliśmy lista o nazwie 'x' i dodaj do tego kilka wartości. Podczas biegać, wyświetli listę wartości. Kiedy ty aktualizacja listę, przypisując nowe wartości do indeks 0 i 2, z powodzeniem to zrobi.

Opisany powyżej przykład jest prostym i podstawowym przykładem modyfikacji. Aby sprawdzić zmienność na inny poziom, spójrzmy na ten sam przykład z niewielką zmianą. Stworzyliśmy nową nazwę 'tak' i powiązać go z tym samym obiektem listy. Kiedy sprawdziliśmy, czy „x' jest taki sam jak 'tak', zwraca True. Z drugiej strony zarówno 'x' i 'tak' mieć podobnie pamięć adresy.

Teraz dodaj nową wartość do a nazwa listy 'x' i sprawdź zaktualizowane dane wyjściowe.

Teraz, gdy sprawdzisz listę imię „y”, wyświetli tę samą listę, jaką wyświetla dla „x”. Oznacza to, że gdy aktualizujemy tę samą listę obiektów, która ma dwie różne nazwy „x” i „y”. Oba są takie same i dzielą te same adresy pamięci nawet po modyfikacji.

Typ danych słownika

Ponieważ słowniki są powszechnie używanymi zmiennymi w Pythonie, przyjrzyjmy się zmienności słowników. Zdefiniowaliśmy słownik o nazwie 'dyktować'z trzema kluczami i ich wartościami. Kiedy go wydrukujemy, wyświetli całą jego zawartość. Możesz wydrukować każdą wartość ze słownika osobno, a także użyć ich Klucze zamiast indeksów.

Chcemy, aby zmiana konkretną wartość, aktualizując klucz "Nazwa". Wyświetli zaktualizowany słownik. Klucze słownika są niezmienne.

Zdefiniujmy lista i krotka osobno. Upewnić się, że krotka musi mieć wartość typu listy w nim i na liście mają wartość typu krotki w związku z tym.

ZA krotka ma lista na jego 0 indeksów więc kiedy zmienisz się w 0 indeksów krotki, musisz wspomnieć o indeks listy, na której chcesz zmienić. Zmiana następuje, ponieważ lista jest niezmienna.

Wręcz przeciwnie, zmienna list nie może być aktualizowana, ponieważ ma krotka na 0 indeks, co jest zmienne.

Wniosek

Widzieliśmy różnice w Pythonie między zmiennymi a niezmiennymi. Musisz jasno powiedzieć, że wszystko w Pythonie jest określane jako obiekt. Przede wszystkim rozróżnienie między obiektami, które są zmienne, a. niezmienny.

Gry OpenTTD Tutorial
OpenTTD Tutorial
OpenTTD is one of the most popular business simulation games out there. In this game, you need to create a wonderful transportation business. However,...
Gry SuperTuxKart for Linux
SuperTuxKart for Linux
SuperTuxKart is a great title designed to bring you the Mario Kart experience free of charge on your Linux system. It is pretty challenging and fun to...
Gry Battle for Wesnoth Tutorial
Battle for Wesnoth Tutorial
The Battle for Wesnoth is one of the most popular open source strategy games that you can play at this time. Not only has this game been in developmen...