Система объектно-ориентированного программирования (ООП) - одна из важнейших концепций, которую каждый в мире, пишущий компьютерную программу, должен иметь базовое представление о ней.
Давайте сначала определим, что такое ООП?
Объектно-ориентированное программирование - это парадигма программирования, основанная на концепции объектов, которые содержат данные и код.
Новый вопрос, который, очевидно, поразит наш ум: что такое объекты.
Объект - это сущность, с которой связаны состояние и поведение.
Объект может быть реальной сущностью, целым числом, массивом, строкой и т. Д.
Важное понятие в oops - это класс, поэтому давайте разберемся, что такое класс.
Класс - это план, содержащий методы и переменные, общие для всех типов.
Пример, чтобы лучше понять это,
Пусть Car будет классом, тогда Audi и Maruti будут объектами класса Car. У всех автомобилей есть общие черты, такие как рулевое колесо, четыре колеса и т. Д.
Простой код класса:
# A simple example of class class Test: # A sample method def func(self): print('Hello world') obj = Test() obj.func()
Пара ключевых вопросов,
В чем разница между методами и функциями?
Метод аналогичен функции, которая выполняет данные инструкции для выполнения конкретной задачи. Единственная разница между методом и объектом состоит в том, что метод связан с объектами, а функции - нет.
Что такое я?
Параметр self - это ссылка на текущий экземпляр класса. Это похоже на указатели и это в C ++ и Java соответственно. Должен быть параметр self, связанный с методом класса, для которого мы не указываем значение, его предоставляет python.
Обычно мы используем три типа модификаторов доступа:
- Общедоступный: доступ к нему можно получить из любой точки программы.
- Защищено (‘_var-name): к нему можно получить доступ в классе и его подклассах.
- Частный (‘__var-name): доступ к нему возможен только внутри класса.
Кроме того, в классе можно определить три типа методов:
- Метод экземпляра: по имени он может получить доступ к уникальным данным из своего экземпляра. У этого метода должен быть дополнительный параметр self.
- Метод класса: мы часто создаем этот метод, когда нужно изменить только переменные класса. У них нет доступа к данным конкретного экземпляра, но они могут вызывать другие статические методы.
- Статический метод: мы можем просто назвать этот метод функцией. Это нельзя использовать для доступа к каким-либо данным, зависящим от класса, мы не должны использовать параметр self или создавать экземпляр для этого метода.
Ниже приведены важные концепции ООП.
- Наследование: Основным преимуществом oop является повторное использование, и наследование является одним из механизмов его достижения. Наследование определяется как способность одного класса наследовать свойства от другого класса и повторно использовать его при необходимости. В python есть разные типы наследования: одиночное наследование, множественное наследование, многоуровневое наследование и иерархическое наследование.
- Инкапсуляция: это относится к объединению данных в единый блок.
- Абстракция: это процесс сокрытия реальной реализации приложения от пользователя и акцентирования внимания только на его использовании.
- Полиморфизм: слово полиморфизм означает наличие множества форм. В программировании полиморфизм означает, что одно и то же имя функции (но разные сигнатуры) используется для разных типов.
Пример,
class Employee: increment = 1.5 # Constructor def __init__(self, name, salary): self.name = name self.salary = int(salary) # instance method def increase(self): self.salary = self.salary * Employee.increment # Alternate class method @classmethod def details(cls, emp_string): name, salary = emp_string.split('-') return cls(name, salary) @staticmethod def is_open(day): if day == 'Sunday': return True return False class Programmer(Employee): def __init__(self, name, salary, langname, exp): super().__init__(name, salary) self.langname = langname self.exp = exp def increase(self): self.salary = self.salary * (Employee.increment + 0.5) harry = Employee('Rohan', 5000) sohan = Employee.details('sohan-4000') print(harry.__dict__) print(sohan.__dict__) harry.increase() print(harry.__dict__) print(Employee.is_open('Sunday')) AJ = Programmer('AJ', 8000, 'Python', 2) print(AJ.__dict__) AJ.increase() print(AJ.__dict__) sohan.increase() print(sohan.__dict__)
Ссылка на мои предыдущие статьи: