ВВЕДЕНИЕ

Все, кто умеет программировать или изучает его, слышали об ООП (объектно-ориентированном программировании) и Python как о самом популярном языке программирования на языке высокого уровня.

И это нормально, потому что буквально все является объектом в питоне, и каждый из них относится к определенному классу:

Даже функции, методы и все прочее являются объектами:

ID И ТИП

Функция id() — это встроенная функция Python, которая получает один параметр для возврата идентификатора объекта.

Синтаксис:

См. пример функции id():

ИЗМЕНЯЕМЫЕ ОБЪЕКТЫ

Как обычно, изменяемые объекты являются контейнерами другого типа данных, целых чисел, строк или чего-то еще, поэтому, когда мы используем функцию id(), они возвращают тот же номер идентификатора.

Посмотрите на следующие примеры, чтобы понять это.

  • Сначала со списком:

  • Теперь с персонажами:

НЕИЗМЕННЫЕ ОБЪЕКТЫ

Неизменяемый объект — это тот, что если вы пытаетесь что-то изменить, то внешне вы его меняете, а на самом деле вы создаете новый объект с другим id, но с данными первого объекта, вроде чисел на нашем примере.

В итоге:

ПОЧЕМУ ЭТО ВАЖНО И НАСКОЛЬКО ПО РАЗНОМУ PYTHON ОБРАБАТЫВАЕТ ИЗМЕНЯЕМЫЕ И ИММУТАЛИРУЕМЫЕ ОБЪЕКТЫ

Главный фактор, о котором следует помнить, заключается в том, что эффективность использования памяти сильно зависит от использования правильных объектов.

Когда мы вызываем объект по ссылке в функции, мы можем изменить исходное значение объекта. Чтобы избежать этого, нам нужно создать копию () из исходного объекта. Неизменяемые объекты можно вызывать по ссылке, потому что их значение в любом случае нельзя изменить.

По ссылке:

Как видно из приведенного выше примера, мы вызвали список через вызов по ссылке, поэтому изменения вносятся в исходный список.

Теперь перейдите по значению:

Здесь, когда мы пытаемся изменить значение переменной «b», используя функцию «update(n)», функция получает только значение переменной, а не саму переменную, тем самым значение функции id() равно идентичны, мы ничего не меняем, пока значение 'вызов по значению' не 'по ссылке'.

КАК АРГУМЕНТЫ ПЕРЕДАЮТСЯ ФУНКЦИЯМ И ЧТО ЭТО ЗНАЧИТ ДЛЯ ИЗМЕНЯЕМЫХ И ИММУТАЛИРУЕМЫХ ОБЪЕКТОВ

В Python аргументы всегда передаются функциям по ссылке.