В python, который является ООП, объектно-ориентированным языком программирования, все является объектом. От типов переменных к классам. Они делятся на объекты, которые могут быть изменены (изменяемые), и объекты, которые не могут быть изменены (неизменяемые). Мы увидим, какими объектами и как ими можно манипулировать, чтобы добиться желаемого с помощью нашей программы.

Чтобы узнать, является ли объект изменчивым или нет, мы должны проверить его тип и идентичность. Для этого мы будем использовать функции id и type.

Идентификатор и тип:

Идентификатор, как вы можете связать, это знать идентификатор объекта, это обычно соответствует его пространству памяти.

Type, как следует из названия, его функция — возвращать тип объекта.

С помощью этих функций можно узнать, является ли объект изменяемым, поскольку изменяемые объекты не изменяют свой идентификационный номер, с другой стороны, неизменяемые объекты — да. Потому что, когда вы хотите изменить объект этого типа, вы обычно создаете новый с изменением или просто сообщением об ошибке доступа к неизменяемому объекту.

Изменяемые объекты и неизменяемые объекты:

Изменяемыми объектами являются только списки, множества и словари, остальные неизменяемы.

Вот почему нужно знать, как обращаться с каждым типом объекта и его особенностями.

Изменяемый:

Изменяемые объекты труднее создавать и манипулировать ими. Но очень легко редактировать.

Неизменный:

Неизменяемые объекты весьма полезны со значениями, которые вы не хотите изменять, что более обычно. Но редактировать неизменяемые значения становится сложнее.

Как относиться к изменяемым и неизменяемым объектам?

Мы рассмотрим это на нескольких примерах.

В первом примере будет показано, как ведут себя неизменяемые объекты.

>>> str1 = "IMMUTABLE"
>>> print(id(str1))              # f124578
>>> str2 = "IMMUTABLE"
>>> print(id(str2))              # f124578

Как мы видим, и str1, и str2 имеют одинаковую идентичность. Это означает, что они оба относятся к одному и тому же объекту.

Оптимизируйте использование ресурсов, указывая на один и тот же объект. А также он должен быть очень понятным для манипулирования переменными.

Во втором примере будет показано, как ведут себя изменяемые объекты.

>>> list1 = [6, 7, 8]
>>> list2 = [6, 7, 8]
>>> list1 == list2
True
>>> list1 is list2
False

В первом объявлении с "==" ссылаются на значения, поэтому должны быть True. Но во втором объявлении с is имеет значение False, потому что оно относится не только к его ценностям, но и к его личности. И в этом случае отличается; Это поведение изменяемых объектов, они не указывают на один и тот же объект, даже если они имеют одинаковое значение, из-за их возможности редактирования.

Манипуляции с объектами в функциях

В функциях то, как мы отправляем объекты, может изменить все, если оно изменчиво, неизменно. Возвращает ли функция копию неизменяемого объекта или просто изменяет его.

def AddTwo(number):
    number += 2

Мы определяем функцию для добавления к переменной 2.

n = 6
AddTwo(n)
print(n)      # 6

Когда мы используем его в следующей программе, результатом является заданная инициализация. Это потому, что единственный способ изменить его значение — это скопировать его, вернув другой объект; Его можно присвоить той же переменной, но он изменит свою идентичность, будучи другим объектом. Наконец, поскольку функция изменяет свое значение только в объекте, который не используется или не имеет имени, объект просто никогда не изменяется.