Рубрики
Без рубрики

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

Сегодня в этом руководстве мы собираемся обсудить концепцию абстракции в Python для объектно-ориентированного программирования.

Автор оригинала: Pankaj Kumar.

Вступление

Сегодня в этом руководстве мы собираемся обсудить концепцию абстракции в Python для Объектно-ориентированный подход программирования.

Если вы новичок в Ооп Мы настоятельно рекомендуем пройти через наши Объектно-ориентированное программирование в Python статья.

В основном, Абстракция Сосредоточены на скрытии внутренних реализаций процесса или метода от пользователя. Таким образом, пользователь знает, что он делает, но не тем, как работает работа.

Давайте рассмотрим немного глубже в тему, чтобы найти его важность в реальной жизни и программировании.

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

В объектно ориентированном программировании, Наследование , Полиморфизм и Инкапсуляция идти, держась за руки. Но Абстракция также является важным элементом OOP.

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

Мощный способ управлять абстракция посредством использования иерархической классификации. Это позволяет нам слой семантику сложных систем, сломав их на более управляемых частях. Снаружи автомобиль является одним объектом. Однажды внутри, вы видите, что автомобиль состоит из нескольких подсистем: рулевое управление, тормоза, звуковая система, ремни безопасности и т. Д. В свою очередь, каждая из этих подсистем состоит из небольших единиц.

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

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

Абстрактные классы и методы в Python

Объявить Абстрактный класс Мы сначала нужно импортировать ABC модуль. Давайте посмотрим на пример.

from abc import ABC
class abs_class(ABC):
     #abstract methods

Здесь Abs_class Абстрактный класс внутри, которые могут быть определены абстрактные методы или любые другие способы.

Как имущество, абстрактные классы могут иметь любое количество абстрактных методов, сосуществующих с любым количеством других методов. Например, мы видим ниже.

from abc import ABC, abstractmethod
class abs_class(ABC):
    #normal method
    def method(self):
        #method definition
    @abstractmethod
    def Abs_method(self):
        #Abs_method definition

Здесь Метод () нормальный метод, тогда как ABS_Method () Это абстрактный метод, реализующий @abstractmethod от ABC модуль.

Пример абстракции Python

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

from abc import ABC, abstractmethod
class Absclass(ABC):
    def print(self,x):
        print("Passed value: ", x)
    @abstractmethod
    def task(self):
        print("We are inside Absclass task")

class test_class(Absclass):
    def task(self):
        print("We are inside test_class task")

class example_class(Absclass):
    def task(self):
        print("We are inside example_class task")

#object of test_class created
test_obj = test_class()
test_obj.task()
test_obj.print(100)

#object of example_class created
example_obj = example_class()
example_obj.task()
example_obj.print(200)

print("test_obj is instance of Absclass? ", isinstance(test_obj, Absclass))
print("example_obj is instance of Absclass? ", isinstance(example_obj, Absclass))

Выход:

Пример абстракции Python

Здесь,

Absclass абстрактный класс, который наследует от ABC класс из модуля ABC. Содержит абстрактный метод Задача () и а Печать () Метод, который виден пользователем. Две другие классы, наследующие из этого абстрактного класса, являются test_class и example_class Отказ У них обоих есть свои Задача () Метод (расширение абстрактного метода).

После того, как пользователь создает объекты из обоих test_class и example_class классы и вызывают Задача () Метод для них обоих, скрытые определения для Задача () Методы внутри обоих классов вступают в игру. Эти определения являются скрытый от пользователя. Абстрактный метод Задача () из абстрактного класса Absclass на самом деле никогда не вызывает.

Но когда Печать () Метод называется как для test_obj и example_obj , абсцкласс Печать () Способ вызывается, поскольку это не абстрактный метод.

Примечание : Мы не можем создавать экземпляры абстрактного класса. Раняет Ошибка . Отказ

Заключение

Итак, сегодня в этом руководстве мы поняли понятие Абстракция в Python Отказ

Для любых дополнительных связанных вопросов не стесняйтесь использовать комментарии ниже.

Рекомендации

  • Объектно-ориентированное программирование в Python ,
  • Наследование в Python ,