Что такое изменяемое и неизменяемое в Python?
Опубликовано: 2022-09-22В Python каждая переменная содержит экземпляр любого объекта двух видов: изменяемый и неизменяемый. Уникальный идентификатор объекта присваивается объекту всякий раз, когда он создается. Среда выполнения определяет тип объекта и не может быть изменена позже.
Однако изменчивый — это изменчивый объект. Когда мы говорим «изменяемый», это означает, что внутреннее состояние объекта может быть изменено. В то же время состояние объекта, не способное измениться после создания, является неизменяемым объектом. Как изменяемые, так и неизменяемые состояния являются неотъемлемой частью структуры данных Python.
Функция изменяемости объектов в Python делает его языком с динамической типизацией. Mutable и Immutable в Python очень важны как концепции, но их часто путают из-за их непереходной природы неизменности.
Давайте узнаем все о них и ключевых различиях.
Посетите наши онлайн-курсы по науке о данных, чтобы повысить свою квалификацию
Лучшие навыки работы с данными, которым нужно научиться, чтобы повысить квалификацию
Сл. Нет | Лучшие навыки работы с данными в 2022 году | |
1 | Онлайн-курсы по анализу данных | Онлайн-курсы по логической статистике |
2 | Онлайн-курсы по проверке гипотез | Онлайн-курсы по логистической регрессии |
3 | Курсы линейной регрессии | Онлайн-курсы по линейной алгебре для анализа |
Изменяемое состояние в Python
Слово «изменчивый» напрямую переводится как «изменчивый» или что-то, что может «мутировать». Он определяет объект, открытый для изменений, а в Python «изменяемый» относится к способности объекта изменять значения. Эти объекты часто хранят набор данных и содержат встроенные списки типов, наборы, словари и определяемые пользователем классы.
Неизменяемое состояние определения в Python
Immutable в Python — это когда вы не можете изменить тип объекта с течением времени. Если невозможно изменить значение объекта в Python, он называется неизменяемым объектом. После создания неизменяемого объекта его значение остается постоянным и неизменным. Неизменяемые объекты встроенного типа — это числа, строки, кортежи, фиксированные наборы и определяемые пользователем классы.
Объекты в Python
Прежде чем мы углубимся в изменчивость и неизменность в Python, давайте сначала узнаем, что такое объекты. В Python все считается объектом, и каждый объект имеет три атрибута:
- Идентификация: относится к адресу объекта в памяти компьютера.
- Тип : относится к типу создаваемого объекта. Например, целое число, строка, список и тому подобное.
- Значение : это относится к значению, которое хранит объект. Например, List=[5,6,7] будет хранить числа 5, 6 и 7.
Даже если идентификатор и тип объекта не могут быть изменены после создания, значения для изменяемых объектов открыты для изменений.
Изменяемые объекты в Python
Изменяемые объекты — это объекты в Python, которые можно видоизменять или изменять. Коды лучше служат для обучения реализации этих объектов. Поэтому давайте посмотрим на несколько кодов и попробуем лучше понять изменяемые объекты:
- Для составления списка, содержащего названия фруктов
фрукты = ['Манго', 'Папайя', 'Апельсин']
- Для печати элементов из списка фруктов, разделенных запятой и пробелом
для фруктов во фруктах:
печать (фрукты, конец = ', ')
Выход [1]: манго, папайя, апельсин
- Для печати местоположения объекта, созданного в адресе памяти в шестнадцатеричном формате.
Изучите наши популярные онлайн-курсы по науке о данных
Высшая программа высшего образования в области науки о данных от IIITB | Программа профессиональных сертификатов в области науки о данных для принятия бизнес-решений | Магистр наук в области науки о данных Университета Аризоны |
Расширенная сертификационная программа в области науки о данных от IIITB | Профессиональная сертификационная программа в области науки о данных и бизнес-аналитики Университета Мэриленда. | Онлайн-курсы по науке о данных |
печать (шестнадцатеричный (id (фрукты)))
Выход [2]: 0x1691d7de8c8
- Добавление нового фрукта в список «фрукты»
fruit.append('Виноград')
- Для печати элементов, присутствующих в списке «фрукты», разделенных запятой и пробелом.
для фруктов во фруктах:
печать (фрукты, конец = ', ')
Продукт [3]: манго, папайя, апельсин, виноград.
- Для печати созданного в памяти адреса объекта в шестнадцатеричном формате
печать (шестнадцатеричный (id (фрукты)))
Выход [4]: 0x1691d7de8c8
Пример показывает, что внутреннее состояние объекта «фрукты» можно легко изменить, добавив к нему еще один фрукт «Виноград». Однако адрес памяти объекта остается прежним, что доказывает отсутствие необходимости в создании нового объекта. Скорее, один и тот же объект может быть изменен или видоизменен. В этом примере показано, что объект с именем ссылочной переменной «фрукты» типа списка является изменяемым.
Неизменяемые объекты в Python
Неизменяемые объекты в Python — это объекты, значения которых нельзя изменить. Давайте следовать простому коду, чтобы лучше понять, что такое неизменяемые объекты и как они работают. Код приведен ниже: -
- Для создания кортежа, содержащего английское название месяцев
месяца = 'январь', 'февраль', 'март', 'апрель', 'май', 'июнь', 'июль', 'август'
- Для печати элементов кортежа месяцев
печать (месяцы)
Вывод [1]: («Январь», «Февраль», «Март», «Апрель», «Май», «Июнь», «Июль», «Август»)
- Для печати местоположения объекта, созданного в адресе памяти в шестнадцатеричном формате
печать (шестнадцатеричный (id (месяцы)))
Выход [2]: 0x1691cc35090
- Важно отметить, что кортежи неизменяемы; следовательно, они не включают больше новых элементов. Следовательно, вам нужно использовать слияние кортежей с оператором # +, чтобы добавить новый воображаемый месяц в кортеж 'months'.
месяцы += 'Pythonuary'
- Для печати элементов кортежа «месяцы».
печать (месяцы)
Вывод [3]: («Январь», «Февраль», «Март», «Апрель», «Май», «Июнь», «Июль», «Август», «Питонуарий»)
- Для печати местоположения объекта, созданного в адресе памяти в шестнадцатеричном формате
печать (шестнадцатеричный (id (месяцы)))
Выход [4]: 0x1691cc8ad68
Читайте наши популярные статьи о науке о данных
Карьерный путь в науке о данных: подробное руководство по карьере | Карьерный рост в науке о данных: будущее работы уже здесь | Почему наука о данных важна? 8 способов, которыми наука о данных приносит пользу бизнесу |
Актуальность науки о данных для менеджеров | Окончательная шпаргалка по науке о данных, которую должен иметь каждый специалист по данным | 6 главных причин, почему вы должны стать специалистом по данным |
Один день из жизни Data Scientist: что они делают? | Развенчан миф: Data Science не нуждается в кодировании | Бизнес-аналитика и наука о данных: в чем разница? |
Этот пример доказывает, что имена переменных можно легко использовать для ссылки на объект, разновидность кортежа, состоящего из восьми элементов. Однако идентификатор ячейки памяти старого и нового кортежа не одинаков. Следовательно, внутреннее состояние объекта «месяцы» не может быть изменено. Поэтому менеджер программ Python создал новый объект в адресе памяти. Кроме того, имя переменной «месяцы» также ссылается на новый объект с девятью элементами. Следовательно, доказывая, что кортеж, объект с именем ссылочной переменной «месяцы», является неизменяемым объектом.
Вывод
Изменяемые объекты в основном используются для разрешения любых будущих обновлений. С другой стороны, неизменяемость также предлагает множество эффективных и практичных приложений для различных важных задач в сетевом центре, что позволяет выполнять параллельную обработку. Неизменяемые объекты, запечатайте значения и убедитесь, что ни один из потоков не вызывает перезапись/обновление данных. Он отлично подходит для написания постоянных кодов, которые не потребуют изменений в будущем.
Если вы начинающий программист или энтузиаст науки о данных, изучение изменяемых и неизменяемых объектов в Python поможет вам выбрать эту область своей карьеры. Лучший способ узнать об этом — зарегистрироваться в программе Executive Post Graduate Program в области науки о данных на upGrad.
Курс создан под руководством опытных преподавателей, предоставляя глубокие знания по актуальным темам, чтобы подготовить тысячи учащихся к будущей карьере.
Q1. Каковы существенные различия между изменяемым и неизменяемым в Python?
Ответ. Состояние или значение объекта открыто для изменения после создания в изменяемом. Состояние или значение объекта не открыто для изменения после создания в неизменяемом. Изменяемые объекты не являются потокобезопасными. Неизменяемые объекты полностью потокобезопасны. Изменяемые классы не являются окончательными. Перед созданием неизменяемого объекта необходимо сделать класс final.
Q2. Что такое изменяемые и неизменяемые типы данных в Python?
Ответ. Изменяемыми типами данных в Python являются список, набор, словарь и определяемые пользователем классы, а неизменяемыми типами данных являются int, decimal, float, bool, tuple, string и range.
Q3. Изменяемы ли списки в Python?
Ответ: В Python списки — это изменяемые типы данных с легко изменяемыми элементами. Кроме того, вы можете заменить отдельные элементы и даже изменить порядок элементов после создания списка.