ООП в Python: принципы объектно-ориентированного программирования

Также ООП экономит время при поддержке и доработке приложения. Вы можете использовать функции issubclass () или isinstance (), чтобы проверить отношения двух классов и экземпляров. Вместо того, чтобы начинать с нуля, вы можете создать класс, выведя его из ранее существовавшего класса, перечислив родительский класс в скобках после имени нового класса. Обычно вы не замечаете, когда сборщик мусора уничтожает потерянный экземпляр и освобождает его пространство.

Одинаковые методы разных объектов могут выполнять задачи разными способами. У «программиста» реализация этого метода будет означать написание кода, а у «директора» — рассмотрение управленческих вопросов. Объектно-ориентированное программирование (ООП) — это подход, при котором программа рассматривается как набор объектов, взаимодействующих друг с другом. Если постараться объяснить простыми словами, то ООП ускоряет написание кода и делает его более читаемым. Атрибуты объекта могут или не могут быть видны вне определения класса.

1.2.3. Инициализация класса¶

Все эти проверки совершаются только для пользовательских атрибутов. Ассоциированные объекты могут циклически ссылаться друг на друга, что ломает стандартный механизм сборки мусора. Избежать подобных проблем при ассоциации помогают слабые ссылки (модуль weakref). Это обсуждение на stackoverflow поможет лучше разобраться с инстанцированием классов.

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

В компилируемых языках программирования полиморфизм достигается за счет создания виртуальных методов, которые в отличие от невиртуальных можно перегрузить в классе-потомке. В Python все методы являются виртуальными и, соответственно, доступными для перезагрузки. В этом примере мы определяем переменную класса “num_cars”, которая является общей для всех экземпляров класса.

Добавление и удалений полей и методов

В программе при этом в качестве основных логических конструктивных элементов используются объекты, а не алгоритмы. В приведенном выше примере мы определяем два метода sing() и dance(). Их называют методами экземпляра, так как они вызываются для экземпляра объекта, то есть для blu. Конструктором в ООП называют метод класса, который вызывается автоматически при создании объекта от этого класса. В то же время конструктор относится к методам перегрузки операторов. Имена таких методов регламентированы самим языком программирования, а их вызов происходит автоматически при участии объекта в тех или иных операциях.

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

Вместо этого данные класса определяются как закрытые. Если вызывающий код желает изменить состояние объекта, то должен делать непрямо через открытые методы. Этот принцип переплетается с идеей защиты данных – «внешний мир» должен попросить о возможности изменения или получения лежащего в основе объекта значения.

Пример

Не смотрите дальше объектно-ориентированного программирования (OOP), мощной парадигмы, которая позволяет создавать надёжные, модульные и масштабируемые приложения. Свойство (англ. Property) – специальный атрибут класса, имитирующий поле (но который при чтении вызывает какой-либо метод). Первым параметром метода идет параметр self, в котором содержится ссылка на экземпляр, который вызвал данный метод. При наличии классов, связанных этой формой наследования, между типами устанавливается отношение “является”.

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

Затем мы углубились в основы классов, объектов, атрибутов, методов, наследования, полиморфизма, инкапсуляции и абстракции. Этот класс можно использовать для создания различных типов графиков, таких как линейные графики, точечные графики и столбчатые графики. В этом примере мы определяем mixin с именем LoggingMixin, который имеет единственный метод, называющийся log.

Используйте следующее вместе с наследованием

Стоит упомянуть, что внутри метода, атрибуты экземпляра ссылаются при помощи ключевого слова self, в то время как атрибуты класса ссылаются при помощи названия класса. Внешне конструктор похож на обычный метод, однако вызвать его явным образом нельзя. Вместо этого он автоматически срабатывает каждый раз, когда программа создает новый объект для принципы ооп python класса, в котором он расположен. Имя у каждого конструктора задается в виде идентификатора __init__. Получаемые им параметры можно присвоить полям будущего объекта, воспользовавшись ключевым словом self, как в вышеописанном примере. Однако класс Employee может иметь те же атрибуты и методы, что и класс Person, так как работник – это человек.

  • Двигаясь дальше, мы рассмотрели некоторые продвинутые темы в ООП, включая порядок разрешения методов (MRO), абстрактные базовые классы (ABCS), миксины и метаклассы.
  • Интересно, что указывается именно термин связывание, а терминов наследование и полиморфизм нет.
  • Мы могли бы сделать отдельный класс “Грузовик”, который является наследником “Автотранспорта”.
  • Определив новый класс, можно создавать сколько угодно объектов на его основе.
  • Далее представлен программный код, который в некоторой степени позволят понять разницу между полем объекта класса и полем экземпляра класса.

Обратите внимание, что из класса-потомка мы не можем напрямую обратиться к приватным атрибутам и методам класса-родителя. Этот принцип позволяет применять одни и те же команды к объектам разных классов, даже если они выполняются по-разному. Например, помимо класса «Кошка», у нас есть никак не связанный с ним класс «Попугай» — и у обоих есть метод «спать». Несмотря на то что кошки и попугаи спят по-разному (кошка сворачивается клубком, а попугай сидит на жёрдочке), для этих действий можно использовать одну команду. В первой строке мы как раз наследуем все методы и атрибуты класса Cat. А чтобы всё создалось корректно, мы должны вызвать метод super() в методе __init__() и через него заполнить атрибуты класса-родителя.

«Нейронные сети на Python. Уроки» от selfedu

Теперь давайте углубимся в основные концепции ООП в Python. Классы являются строительными блоками ООП, они определяют структуру и поведение объектов. Класс содержит атрибуты (переменные), которые хранят данные, а также методы (функции), которые выполняют действия с этими данными. Вы можете создавать объекты, создавая экземпляр класса, которые реализуют уникальные экземпляры класса со своим собственным набором атрибутов и методов.

Затем использовали метод __init__() для хранения значения максимальной стоимости продажи компьютера. Мы используем ключевое слово class для определения пустого класса Parrot . Из класса мы создаем экземпляр – объект определенного класса. Концепция ООП в Python направлена ​​на создание кода для многократного использования. Эта концепция также известна как DRY (Don’t Repeat Yourself). Одной из наиболее популярных парадигм является создание объектов.


Diterbitkan

dalam

oleh

Tags:

Comments

Tinggalkan Balasan

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *