Понимание абстракции: как абстракция работает в Python?

Опубликовано: 2023-04-08

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

Оглавление

Что такое абстракция в Python?

Абстракция определяется как основная концепция объектно-ориентированного программирования. Он помогает вам инкапсулировать данные реализации класса от его пользователей. Абстракцияв Python помогает вам взаимодействовать с классом, не понимая его внутренней работы.Это достигается за счет использования абстрактных интерфейсов и классов.

Абстракцияв Python также относится к управлению сложностью путем сокрытия ненужной информации от пользователя.Следовательно, кодирование упрощается. Пользователь просто взаимодействует с фундаментальной реализацией классов и функций; внутренняя работа остается скрытой.

По сути, пользователь знает только назначение функции; они не знают, как это происходит. Обратите внимание, что абстрактный объект не может быть создан, т. е. мы не можем создавать объекты для абстрактного класса. Это делает ваш код более расширяемым, читабельным и удобным в сопровождении. Кроме того, это позволяет избежать дублирования. Сосредоточение внимания только на основной концепции может помочь повысить эффективность вашей работы.

Как работает абстракция в Python?

Ключевая роль абстракции — скрыть внутреннюю работу кода. Взаимодействие с пользователями осуществляется через базовую реализацию. Концепция абстракции в Python работает с использованием абстрактных классов и методов.

Абстрактный класс определяется как класс, упомянутый в коде, который имеет абстрактные методы. Абстрактные методы не имеют никакой реализации; все реализации выполняются в подклассах.

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

Вы можете легко понять работуабстракции данных в Python на примере реального сценария.Когда вы совершаете покупки в Интернете, вы покупаете или добавляете товары в корзину, а затем оплачиваете их. Однако, когда вы нажимаете на доступные параметры, они выполняют несколько внутренних функций, реализация которых недоступна для пользователя. Пользователь может видеть только требуемый вид. Именно здесь действует абстракция, ища преимущества иерархической классификации, т. е. сложные модули разбиваются на управляемые части.

Важность абстракции в Python

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

  • Абстракцияв Python помогает скрыть нерелевантный класс/данные/процесс и, таким образом, снижает сложность кодирования.
  • Это повышает эффективность приложения.
  • Абстракция в Python позволяет пользователям создавать масштабируемые и гибкие функции, которые легко адаптировать.

Базовые классы абстракции

В Python абстрактный базовый класс относится к общей прикладной программе интерфейса для нескольких подклассов. Проще говоря, он работает как план для других классов. Сторонняя сторона может использовать его, чтобы извлечь выгоду из реализаций, таких как плагины.

Определив абстрактные базовые классы, вы можете разработать общий интерфейс прикладного программирования (API) для различных подклассов. Это удобно при работе в больших командах, когда нет необходимости запоминать все классы. Более того, третьи стороны не обязаны предоставлять все классы в библиотеке.

Вы можете использовать эту возможность абстракции данных в Python, если вы работаете с огромной базой кода и вам сложно запомнить все классы.

Изучайте онлайн- курсы по науке о данных в лучших университетах мира. Участвуйте в программах Executive PG, Advanced Certificate Programs или Master Programs, чтобы ускорить свою карьеру.

Функциональность абстрактных классов

В отличие от других языков программирования высокого уровня, Python не предоставляет собственного абстрактного класса. Вы можете использовать метод Python ABC, который предлагает базовые и необходимые инструменты для определения абстрактных базовых классов (ABC). По сути, ABC предоставляет функцию виртуальных подклассов. Это классы, которые не наследуют свойство от класса и все еще могут быть идентифицированы

isinstance() и issubclass().

Следующий модуль поможет вам разработать собственные ABC.

из abc импортировать ABC

класс MyABC (ABC):

проходить

Как упоминалось выше, модуль ABC предлагает метакласс, т. е. ABCMeta, который определяет определение ABC, и вспомогательный класс ABC для определения ABC с использованием наследования.Кроме того, модуль ABC предлагает декоратор@abstractmethod для представления абстрактных методов.ABC определяется таким образом, что ключевое слово@abstractmethod украшает абстрактные методы в базовом классе при их создании.Более того, конкретные методы представлены как реализации базового класса.

Следующийпример абстракции в Python поможет вам лучше понять функциональность абстрактных классов.

Изучите наши популярные курсы по науке о данных

Высшая программа высшего образования в области науки о данных от IIITB Программа профессиональных сертификатов в области науки о данных для принятия бизнес-решений Магистр наук в области науки о данных Университета Аризоны
Расширенная сертификационная программа в области науки о данных от IIITB Профессиональная сертификационная программа в области науки о данных и бизнес-аналитики Университета Мэриленда. Курсы по науке о данных

из abc импортировать ABC, abstractmethod

Тема класса (ABC):

оценка защиты (я):

проходить

класс английского языка (предмет):

оценка защиты (я):

print("Оценка 80")

класс Математика (предмет):

оценка защиты (я):

print("Оценка 75")

класс Наука (предмет):

Оценка защиты (самостоятельно):

print("Оценка 85")

Литература класса (предмет):

оценка защиты (я):

print("Оценка 70")

е = английский ()

электронный счет()

м = Математика()

м.счет()

с = наука ()

с.счет()

л = Литература()

л.оценка()

Выход:

Оценка 80

Оценка 75

Оценка 85

Оценка 70

Давайте разберемся с реализацией приведенного выше кода.

Мы импортировали модуль ABC, чтобы создать абстрактный базовый класс. Класс Subject наследует класс ABC, и определен абстрактный метод «score ()» .Затем мы унаследовали базовый класс от различных подклассов и уникальным образом реализовали абстрактный метод. Объекты (здесь имена субъектов) создаются для вызова абстрактного метода. Наконец, в качестве вывода предоставляется оценка по каждому предмету.

Ознакомьтесь с нашимибесплатными курсами по науке о данных , чтобы получить преимущество над конкурентами.

Пример абстракции в Python: приложения реального мира

1. Парсинг в Интернете

Одно из лучших реальных применений Python — веб-скрапинг. Это указывает на то, что компании очищают огромное количество данных для получения информации о клиентах и ​​принятия экономически эффективных решений. Концепция абстракции отображает только необходимую информацию и, таким образом, помогает компаниям легко получать доступ к данным клиентов. Более того, такие инструменты, как Selenium, PythonRequest и MechanicalSoup, используются в программировании на Python для разработки приложений для парсинга веб-страниц.

2. Машинное обучение и ИИ

Мы можем рассмотретьабстракцию в примере Python в области машинного обучения и искусственного интеллекта.Простота кодирования и простота понимания концепции абстракции помогают Python выполнять сложные вычисления, необходимые для разработки моделей машинного обучения. Библиотеки Python, такие как Pandas, Keras, NumPy и другие, полезны для приложений машинного обучения. Кроме того, концепция абстракции Python используется в различных решениях ИИ, таких как распознавание изображений, расширенные вычисления, обработка данных и т. д.

Основные навыки работы с данными

Основные навыки работы с данными
1 Курс анализа данных Курсы по логической статистике
2 Программы проверки гипотез Курсы логистической регрессии
3 Курсы линейной регрессии Линейная алгебра для анализа

3. Графический интерфейс рабочего стола

Python — это открытый, простой в освоении, независимый от платформы и стабильный язык программирования. Эти аспекты делают Python подходящим для создания графического пользовательского интерфейса рабочего стола. Такие инструменты, как PyGUI, PyQt и WxPython, широко используются для эффективной разработки высококачественных графических интерфейсов.

Читайте наши популярные статьи о науке о данных

Карьерный путь в науке о данных: подробное руководство по карьере Карьерный рост в науке о данных: будущее работы уже здесь Почему наука о данных важна? 8 способов, которыми наука о данных приносит пользу бизнесу
Актуальность науки о данных для менеджеров Окончательная шпаргалка по науке о данных, которую должен иметь каждый специалист по данным 6 главных причин, почему вы должны стать специалистом по данным
Один день из жизни Data Scientist: что они делают? Развенчан миф: Data Science не нуждается в кодировании Бизнес-аналитика и наука о данных: в чем разница?

4. Кулинария

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

Еда на вынос

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

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

Предоставляя требующие навыков, такие как программирование баз данных на SQL, построение логики для программирования, важные синтаксис Python и программирование баз данных на Python с использованием библиотек Pandas и NumPy, курс поможет вам освоить все аспекты программирования на Python. В дополнение к передовой учебной программе upGrad предлагает несколько дополнительных преимуществ, таких как живые интерактивные занятия, сессии по устранению сомнений, наставничество от ведущих экспертов отрасли, круглосуточная поддержка студентов и многое другое!

В. В чем разница между абстракцией и инкапсуляцией в Python?

Абстракция в Python используется для сокрытия внутренних деталей и отображения только функциональных возможностей. Процесс дает имена вещам, чтобы гарантировать, что имя отражает фундаментальную концепцию того, что делает функция или целая программа. С другой стороны, инкапсуляция ограничивает доступ к переменным и методам. Он объединяет данные и программы в единое целое, чтобы избежать их случайного изменения.

В. Как абстракция в Python помогает создавать повторно используемый код?

В Python процесс абстракции скрывает детали реализации от пользователя. Его способность скрывать детали того, как функция программы делает ваш код более пригодным для повторного использования. Это означает, что вы можете использовать один и тот же код в более общем виде в различных ситуациях, не беспокоясь о том, как он работает под одним капотом. Более того, абстракция в Python делает ваш код более простым для чтения и понимания.

В. Какие методы поддерживаются в абстрактных классах Python?

Абстрактные классы в Python могут поддерживать как абстрактные, так и конкретные методы в Python. Абстрактные методы должны быть реализованы в производных классах. Конкретные методы реализованы в базовом классе.