Они показывают, что метод  __init__ принадлежит классу Cat, а атрибуты  self.name  и self.age принадлежат методу __init__. Например, на основании класса Cat можно создать объекты c именами Milo и Simba, а также возрастом — 2 и 3 года. Наследование позволяет сделать отдельный класс «Самолет», который будет наследником класса «Транспорт». Он сохраняет атрибуты класса «Транспорт» (год выпуска, цвет), но при этом получает новые принципы ооп python — размах крыльев. Основные принципы ООП включают абстракцию, инкапсуляцию, наследование и полиморфизм. Вместе они составляют принцип работы любого объектно-ориентированного языка программирования, в том числе Python.

Типы данных в Python: полное руководство

Это можно заметить по методу whoisThis(). Более того, мы расширяем функциональность родительского класса — создаем метод run(). Экземпляр класса Cat — это уже не схема. Это настоящая кошка с именем и возрастом. Наследование — возможность приобретать свойства существующих классов и создавать новые. Этот принцип призывает повторно https://deveducation.com/ использовать код без необходимости переписывать его в программе.

Атрибуты экземпляра и атрибуты класса

Он позволяет работать с отдельными объектами, а не всеми экземплярами, которые принадлежат классу. Благодаря self мы можем указать, что одну кошку зовут Milo, prompt инженер а вторую — Simba, что одной кошке — два года, а другой — три года. В этой программе мы создаем два класса — Bird (родительский) и Penguin (дочерний). Дочерний класс наследует функции родительского.

Чем объекты отличаются от классов

Это позволяет создавать несколько реализаций одной идеи. В ней есть класс «Транспорт» с методом «Двигаться». После выполнения метода самолет должен полететь, автомобиль — поехать, а корабль — поплыть. Все три действия — это движение, но реализованы они будут по-разному.

Объектно-ориентированное программирование в Python

основные принципы ооп python

Но вот атрибуты каждого экземпляра класса уникальны. Одним из самых больших преимуществ использования классов для организации данных является предсказуемость. Вы можете указать в __init__() любое количество параметров, но первым параметром всегда будет переменная с именем self. В Python конструктором является метод __init__(). В нем указываются все свойства, которыми должны обладать объекты класса Cat.

Создание объектов рассмотрим чуть позже, а пока вернемся к конструкторам. Для именования классов в Python используют нотацию CamelCase — каждое слово начинается с заглавной буквы. Достаточно написать инструкцию class и добавить имя. Чтобы управлять кодом было удобнее (и безопаснее), придумали инкапсуляцию. Это принцип, который призывает блокировать доступ к деталям сложных концепций. Программы могут быть очень длинными, в них может быть тонна движущихся частей.

Но их будет объединять атрибут класса cute — обе они милые. Этот атрибут класса будет появляться во всех экземплярах класса, которые вы будете создавать. Self — указатель на текущий экземпляр класса.

основные принципы ооп python

Каждый раз, когда создается новый объект Cat, __init__() устанавливает начальное состояние, присваивая свойствам значения. То есть __init__() инициализирует каждый новый экземпляр класса. Используйте атрибуты класса для определения свойств, которые должны иметь одинаковое значение для каждого экземпляра класса. Используйте атрибуты экземпляра для свойств, которые меняются от одного экземпляра к другому.

Суть объектно-ориентированного программирования (ООП) очевидно раскрывается в его названии. Эта парадигма предлагает представлять все компоненты программы как объекты из реальной жизни. У каждого такого объекта есть характеристики и он выполняет определенные функции.

основные принципы ооп python

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

Их значения зависят от конкретного экземпляра класса. Но значения атрибутов name и age будут различаться в зависимости от объекта. Получить доступ к атрибуту класса можно так — __class__.species. Атрибуты класса для всех экземпляров класса одинаковы. Точно так же мы можем получить доступ к атрибутам экземпляра — kesha.name и kesha.age.

  • Это настоящая кошка с именем и возрастом.
  • Дочерний класс наследует функции родительского.
  • Kesha и cookie — ссылки на (значения) наши новые объекты.
  • Для использование полиморфизма мы создали общий интерфейс — функцию flying_test().
  • Им всегда должно быть присвоено начальное значение.
  • Если вы пьете кофе, то есть большая вероятность, что вы использовали кофемашину.

Для объявления класса Parrot мы использовали ключевое слово class. Из классов мы получаем экземпляры, созданные по подобию этого класса. Теперь вы можете создать экземпляры этого класса — конкретных кошек. Конструктор — это метод, который вызывается при создании классов. Благодаря ему у объектов изначально есть какие-то значения. Полиморфизм — способность одной функции выполняться по-разному.

Также мы используем функцию super() внутри метода __init__(). Это позволяет запускать метод __init__() родительского класса внутри дочернего. Аналогичным образом можно получить доступ к атрибутам класса, так как они применяются ко всем объектам. Чтобы создать два объекта, достаточно передать имя и возраст — параметры, которые указаны в классе. В нем определены параметры, которые должны быть у каждого объекта этого класса. Методы экземпляра класса — самые распространенные, обычно приходится работать именно с ними.

Это вы можете заметить по методу swim(). Метод класса __init__() имеет три параметра. Почему же в примере ему передаются только два аргумента? Когда вы создаете экземпляр объекта, Python создает новый объект и передает его первому параметру __init__(). Это по существу удаляет self, поэтому вам нужно беспокоиться только о параметрах name и age. На его основе вы будете создавать объекты — разные экземпляры класса.

Такой принцип называется DRY (don’t repeat yourself, «не повторяйся»). Один из популярных подходов к решению проблем — создание объектов. Это называется объектно-ориентированным программированием (ООП). Экземпляр подобен форме, которая была заполнена информацией.

Если мы схематично нарисуем его на бумаге, такой набросок будет являться классом. По нему можно сделать, например, чучело попугая. Python — мультипарадигмальный язык программирования. Он поддерживает разные подходы к программированию.

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