Автор оригинала: 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))
Выход:
Здесь,
Absclass
абстрактный класс, который наследует от ABC класс из модуля ABC. Содержит абстрактный метод Задача ()
и а Печать ()
Метод, который виден пользователем. Две другие классы, наследующие из этого абстрактного класса, являются test_class
и example_class
Отказ У них обоих есть свои Задача ()
Метод (расширение абстрактного метода).
После того, как пользователь создает объекты из обоих test_class и example_class классы и вызывают Задача ()
Метод для них обоих, скрытые определения для Задача ()
Методы внутри обоих классов вступают в игру. Эти определения являются скрытый от пользователя. Абстрактный метод Задача ()
из абстрактного класса Absclass
на самом деле никогда не вызывает.
Но когда Печать ()
Метод называется как для test_obj и example_obj , абсцкласс Печать ()
Способ вызывается, поскольку это не абстрактный метод.
Примечание : Мы не можем создавать экземпляры абстрактного класса. Раняет Ошибка
. Отказ
Заключение
Итак, сегодня в этом руководстве мы поняли понятие Абстракция в Python Отказ
Для любых дополнительных связанных вопросов не стесняйтесь использовать комментарии ниже.
Рекомендации
- Объектно-ориентированное программирование в Python ,
- Наследование в Python ,