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