Как вы увидели в серии стаей, посвященных ООП в Python, объекты объединяют данные и методы, используемые для работы с данными. Это означает, что можно обернуть сложные процессы, но представить им простой интерфейс. Как эти процессы выполняются внутри объекта, становится простой деталью реализации.
Любой, кто использует объект, должен знать только об открытых методах и атрибутах. Это реальный принцип инкапсуляции. Другие части вашего приложения (или даже другие программисты) могут использовать ваши классы и их публичные методы – но вы можете обновить объект, не нарушая интерфейс, который они используют.
Вы можете также передавать объекты вместо одних данных. Это один из наиболее полезных аспектов объектно-ориентированного программирования. Когда у вас есть ссылка на объект, вы можете получить доступ к любому из атрибутов объекта. Если вам необходимо выполнить сложную группу операций как часть программы, вы, вероятно, могли бы ее реализовать с помощью процедур и переменных. Возможно вам придется использовать несколько глобальных переменных для хранения.
Если вы применяете единственный класс, который имеет множество атрибутов, представляющих состояние вашего приложения, вам нужно всего лишь передать ссылку на этот объект. Любая часть кода, которая имеет доступ к объекту, также может обращаться к его атрибутам.
Главным преимуществом объектов является то, что они являются полезной метафорой. Это вписывается в то, как мы думаем. В реальной жизни объекты обладают определенными свойствами и взаимодействуют друг с другом. Чем больше наш язык программирования соответствует нашему образу мышления, тем проще использовать его для творческого мышления.