Python

Променлив срещу. Неизменяеми обекти в Python

Променлив срещу. Неизменяеми обекти в Python

Смята се, че Python е най-удивителният език, тъй като много хора го избират за първи език за програмиране заради елегантността и простотата си. Благодарности към широката общност, излишък от пакети и последователен синтаксис, опитни професионалисти също използват Python. Въпреки че има едно нещо, което изглежда дразни както начинаещите, така и някои професионални разработчици - обекти от Python.

Променлив срещу. Неизменим

Променлив субектите могат промяна техен състояние или вещество да опише несъответствието и неизменен субектите не могат да променят своето състояние или същност. Така че, когато се създава обект, специален идентификатор на обекта се разпределя. По време на изпълнение видът на обекта е посочен и не може да бъде актуализиран по-късно. Вградените форми като int, float, bool, str, tuple и Unicode променливи са неизменни. Обекти като списък, набор, байтови масиви и речник на вградените категории са променливи.

Разберете функцията за идентификация и тип

Интегрираният документ за самоличност() метод съдържа идентификатор на обект като просто цяло число. Това цяло число обикновено се отнася до позицията за съхранение на обекта. "е'операторът свързва идентичностите на два обекта помежду си. Интегрираната функция, Тип(), връща вида на обекта. Сравнете две променливи 'х' и 'у', със същата стойност, използвайки оператор за равенство'x == y', ще изведе Вярно. Използвайки функция id (), сравнихме адреси на паметта и на двете променливи, тя ще изведе Невярно тъй като и двете променливи са различни и се намират на различни места в паметта, въпреки че стойностите, които съдържат, са еднакви.

Направете друга променлива 'z„което сочи към идентичната същност, която“х'насочва към, използвайки оператор за присвояване'='. Използвайки 'е'оператор открихме, че и двамата сочат към един и същ обект и имат еднакви адреси в паметта.

Неизменяеми типове променливи

Нека да разгледаме някои неизменни типове променливи.

Integer DataType

Нека дефинираме променливах„има стойност“10'. Вграден метод id () се използва за откриване на местоположението на 'хв памет и Тип() се използва за идентифициране на неговия тип. Когато се опитаме да променим стойността на 'х', той е успешно променен, въпреки че адресът на паметта се връща по различен начин. Това е така, защото всъщност не сме променили стойността на 'х', но ние създадохме друг обект със същото име'х'и му присвоете различна стойност. Свързахме името "х'към новата стойност. Сега, когато се обадитех'ще изведе новата стойност.

String тип данни

Същото е и за типа низови данни, не можем да модифицираме съществуващите променлива но трябва създайте нов със същото име. Ето го дефинирани низ променлива 'х„и искам да добавя“w'до нулевите му индекси. Ще изведе TypeError, показва, че низ обектът не поддържа актуализация.

Tuple DataType

Погледнете тип кортеж променлива, ние сме определили a кортеж с 4 стойности. Използвахме функция id () за да изведе адреса си. Когато искаме да променим стойността му на 0 индекса, дава на TypeError че кортежът не поддържа присвояване или актуализиране на елементи.

Напротив, можете актуализиране целият кортеж, като го дефинираме от драскотина. Сега, когато го проверите, ще намерите нова стойност и нов адрес.

Float DataType

Имаме променлива тип float 'х'. Използвайки функция id (), трябва да разберем адреса му. Когато искаме да променим стойността му на индекс 1, дава на TypeError този поплавък не поддържа модификация на артикули.

И обратно, актуализирахме плувка като го дефинира отново. Сега, когато и да го извикаме, ще намерим нова стойност и нов адрес.

Променливи типове променливи

Сега ще разгледаме някои променливи типове променливи.

Списък на типа данни

Определихме a списък на име 'х'и добавете някои стойности към него. Докато бягай, ще покаже списъчни стойности. Когато ти актуализиране списъка чрез присвояване на нови стойности на индекс 0 и 2, успешно ще го направи.

Гореописаният пример е прост и основен пример за модификация. За да проверим изменчивостта на различно ниво, нека разгледаме същия пример с малка промяна. Създадохме ново име "у'и го свърза със същия обект от списъка. Когато проверихме далих' е същото като 'у', връща True. От друга страна, и дветех' и 'у"имам същото памет адреси.

Сега добавете нова стойност към a име на списъка „x“ и проверете актуализирания изход.

Сега, когато проверявате за списък име "y", той ще покаже същия списък, както се показва за 'x'. Това означава, че когато актуализираме един и същ списък с обекти, който има две различни имена „x“ и „y“. И двете са еднакви и споделят едни и същи адреси в паметта дори след модификацията.

Речник на типа данни

Тъй като речниците са често използвани променливи в Python, нека да разгледаме променливостта на речниците. Определихме речник с име „дикт'с три ключа и техните стойности. Когато го разпечатаме, той ще покаже цялото му съдържание. Можете да отпечатате всяка стойност на речника поотделно, както и да използвате тяхната ключове вместо индекси.

Ние искаме да промяна конкретната стойност чрез актуализиране на бутон „Име“. Той ще изведе актуализирания речник. Речниковите ключове са неизменни.

Нека дефинираме a списък и кортеж отделно. Уверете се, че кортеж трябва да има a стойност на типа списък в него и списък има a стойност на типа кортеж следователно в него.

A кортеж има списък на своя 0 индекса така че когато сменяте в 0 индекса на кортеж, трябва да споменете индекс на списък, където искате да промените. Промяната настъпва, защото списъкът е неизменен.

Напротив, променливата на списъка не може да се актуализира, тъй като има кортеж На 0 индекс, което е променливо.

Заключение

Виждали сме вариации в Python между изменяеми и неизменяеми. Трябва да изясните ума си, че всичко в Python е посочено като обект. На първо място, разграничението между обекти, които са променливи срещу. неизменен.

Как да покажа брояч на FPS в игрите на Linux
Linux игрите получиха голям тласък, когато Valve обяви поддръжка на Linux за Steam клиент и техните игри през 2012 г. Оттогава много AAA и независими ...
Как да изтеглите и пуснете Civilization VI на Сид Майер на Linux
Въведение в играта Civilization 6 е модерен поглед върху класическата концепция, въведена в поредицата от игрите Age of Empires. Идеята беше доста про...
Как да инсталирате и играете Doom на Linux
Въведение в Doom Серията Doom възниква през 90-те години след пускането на оригиналния Doom. Това беше незабавен хит и от този момент нататък серията ...