или: как начинающий программист научился не волноваться и полюбил Python3

Введение

Что такое объект?

Словарное определение объекта:

  1. материальная вещь, которую можно увидеть и потрогать.
    "он тащил большой предмет"
    синонимы: вещь , статья, предмет, устройство, гаджет, сущность
  2. человек или предмет, на который направлено указанное действие или чувство.
    "болезнь стала объектом исследования"
    синонимы
    : цель, приклад, фокус, получатель, жертва
    «он провел пять лет в качестве объекта бешеной охоты»

В программировании это определение объекта может быть расширено — хотя вы можете не видеть и не касаться программных объектов, вы определенно можете выполнять действия над объектами. Согласно Дасти Филлипсу в Объектно-ориентированном программировании на Python 3, объект — это набор данных и связанное с ними поведение.

Так что же это означает, когда мы добавляем «ориентированный» после объекта? Представьте себе карту города и то, как ее можно использовать для указания ориентиров и пунктов назначения — теперь подумайте о GPS и синей точке «мое местоположение». Эта точка ориентирует нас по отношению к нашему окружению, чтобы мы могли направить себя в правильное место назначения. В разработке программного обеспечения быть «объектно-ориентированным» означает быть направленным на моделирование объектов.

В чем разница между классом и объектом или экземпляром

В дополнение к объектам другим важным аспектом объектно-ориентированного программирования являются классы. Опять же, Philips прекрасно описывает разницу между объектами и классами:

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

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

Изменяемый или неизменный?

В сериале Marvel Люди Икс Люди Икс — это мутанты, подвид людей, которые рождаются со сверхчеловеческими способностями. В Python есть некоторые типы данных, которые имеют особые возможности для изменения, и, как и в случае с Людьми Икс, это называется изменчивостью. Это важный аспект Python, который дает разработчикам программного обеспечения возможность быстро и эффективно изменять данные.

В Python объекты, которые можно изменить, называются изменяемыми. Аналогично, объекты, которые нельзя изменить, называются неизменяемыми.

Когда я искал в Google иллюстрацию изменяемых типов в Python, я продолжал видеть эту таблицу:

Чтобы распаковать эту таблицу, обычно типы данных в Python можно различать в зависимости от того, являются ли объекты этого типа изменяемыми или неизменяемыми. Содержимое объектов неизменяемых типов нельзя изменить после их создания.

Некоторые неизменяемые типы:

  • int, float, длинный, сложный
  • ул
  • байты
  • кортеж
  • замороженный набор

Некоторые изменяемые типы:

  • байтовый массив
  • список
  • набор
  • диктовать

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

ID и type

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

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

type() позволяет быстро узнать тип объекта

Поскольку переменные ссылаются на объекты, если мы присваиваем одну переменную другой, обе переменные ссылаются на один и тот же объект. Поскольку один и тот же список [1, 2, 3] имеет два разных имени, мы говорим, что он с псевдонимом. Как показано на рисунке ниже, изменения, внесенные в один псевдоним, влияют на другой.