Учебники

Объектно-ориентированный Python – Введение

Языки программирования постоянно появляются, как и разные методологии. Объектно-ориентированное программирование является одной из таких методологий, которая стала довольно популярной за последние несколько лет.

В этой главе рассказывается об особенностях языка программирования Python, который делает его объектно-ориентированным языком программирования.

Схема классификации языкового программирования

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

Языковые классы категории Langauages
Парадигма программирования процедурный C, C ++, C #, Objective-C, Java, Go
Scripting CoffeeScript, JavaScript, Python, Perl, Php, Ruby
функциональная Clojure, Eralang, Haskell, Scala
Класс компиляции статический C, C ++, C #, Objective-C, Java, Go, Haskell, Scala
динамический CoffeeScript, JavaScript, Python, Perl, Php, Ruby, Clojure, Erlang
Тип Класс сильный C #, Java, Go, Python, Ruby, Clojure, Erlang, Haskell, Scala
слабый C, C ++, C #, Objective-C, CoffeeScript, JavaScript, Perl, Php
Класс памяти Удалось другие
Неуправляемый C, C ++, C #, Objective-C

Что такое объектно-ориентированное программирование?

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

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

Объектно-ориентированный анализ (OOA) – это процесс изучения проблемы, системы или задачи и определения объектов и взаимодействий между ними.

Почему стоит выбрать объектно-ориентированное программирование?

Python был разработан с объектно-ориентированным подходом. ООП предлагает следующие преимущества –

  • Обеспечивает четкую структуру программы, которая позволяет легко составлять карту реальных проблем и их решений.

  • Облегчает простое обслуживание и модификацию существующего кода.

  • Повышает модульность программы, поскольку каждый объект существует независимо, и новые функции можно легко добавлять, не нарушая существующие.

  • Представляет хорошую основу для библиотек кода, где поставляемые компоненты могут быть легко адаптированы и изменены программистом.

  • Придает код многократного использования

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

Облегчает простое обслуживание и модификацию существующего кода.

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

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

Придает код многократного использования

Процедурное и объектно-ориентированное программирование

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

В таблице на следующем рисунке показаны основные различия между подходами POP и OOP.

Разница между процедурно-ориентированным программированием (POP) и Объектно-ориентированное программирование (ООП).

Процедурно-ориентированное программирование Объектно-ориентированное программирование
На основе В Pop все внимание сосредоточено на данных и функциях. Упс основан на сценарии реального мира. Вся программа делится на небольшие части, называемые объектом
Повторное использование Ограниченное повторное использование кода Повторное использование кода
Подход Нисходящий подход Объектно-ориентированный дизайн
Спецификаторы доступа Не любой Государственный, частный и охраняемый
Движение данных Данные могут свободно перемещаться от функций к функциям в системе В Oops данные могут перемещаться и взаимодействовать друг с другом через функции-члены
Доступ к данным В поп-музыке большинство функций использует глобальные данные для совместного использования, к которым можно свободно обращаться от функции к функции в системе В Oops данные не могут свободно перемещаться от метода к методу, они могут храниться в публичном или частном порядке, чтобы мы могли контролировать доступ к данным.
Скрытие данных В поп, такой специфический способ скрыть данные, так немного менее безопасный Это обеспечивает сокрытие данных, гораздо более безопасный
перегрузка Невозможно Функции и перегрузка операторов
Пример-Языки C, VB, Фортран, Паскаль C ++, Python, Java, C #
абстракция Использует абстракцию на уровне процедуры Использует абстракцию на уровне класса и объекта

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

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

ой

Давайте кратко разберем каждый из столпов объектно-ориентированного программирования –

Инкапсуляция

Это свойство скрывает ненужные детали и упрощает управление структурой программы. Реализация и состояние каждого объекта скрыты за четко определенными границами, что обеспечивает простой и понятный интерфейс для работы с ними. Один из способов сделать это – сделать данные конфиденциальными.

наследование

Наследование, также называемое обобщением, позволяет нам фиксировать иерархические отношения между классами и объектами. Например, «фрукт» является обобщением «апельсина». Наследование очень полезно с точки зрения повторного использования кода.

абстракция

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

Полиморфизм

Полиморфизм означает много форм. То есть вещь или действие присутствует в разных формах или способах. Один хороший пример полиморфизма – перегрузка конструктора в классах.

Объектно-ориентированный Питон

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

Модули против Классов и Объектов

Модули похожи на «Словари»

При работе с модулями обратите внимание на следующие моменты:

  • Модуль Python – это пакет для инкапсуляции многократно используемого кода.

  • Модули находятся в папке с файлом __init__.py .

  • Модули содержат функции и классы.

  • Модули импортируются с использованием ключевого слова import .

Модуль Python – это пакет для инкапсуляции многократно используемого кода.

Модули находятся в папке с файлом __init__.py .

Модули содержат функции и классы.

Модули импортируются с использованием ключевого слова import .

Напомним, что словарь является парой ключ-значение . Это означает, что если у вас есть словарь с ключевым EmployeID, и вы хотите получить его, то вам придется использовать следующие строки кода:

employee = {“EmployeID”: Employee Unique Identity!”}
print (employee [‘EmployeID])

Вам придется работать над модулями с помощью следующего процесса –

  • Модуль – это файл Python с некоторыми функциями или переменными.

  • Импортируйте нужный вам файл.

  • Теперь вы можете получить доступ к функциям или переменным в этом модуле с помощью «.» (точка) Оператор.

Модуль – это файл Python с некоторыми функциями или переменными.

Импортируйте нужный вам файл.

Теперь вы можете получить доступ к функциям или переменным в этом модуле с помощью «.» (точка) Оператор.

Рассмотрим модуль с именем employee.py, в котором есть функция employee . Код функции приведен ниже –

# this goes in employee.py
def EmployeID():
   print (“Employee Unique Identity!”)

Теперь импортируйте модуль и затем получите доступ к функции EmployeID

import employee
employee. EmployeID()

Вы можете вставить переменную с именем Age , как показано на рисунке –

def EmployeID():
   print (“Employee Unique Identity!”)
# just a variable
Age = Employee age is **”

Теперь, доступ к этой переменной следующим образом –

import employee
employee.EmployeID()
print(employee.Age)

Теперь давайте сравним это со словарем –

Employee[‘EmployeID’] # get EmployeID from employee
Employee.employeID() # get employeID from the module
Employee.Age # get access to variable

Обратите внимание, что в Python есть общий шаблон –

  • Возьмите ключ = значение стиля контейнера

  • Получите что-нибудь из этого по имени ключа

Возьмите ключ = значение стиля контейнера

Получите что-нибудь из этого по имени ключа

При сравнении модуля со словарем оба они похожи, за исключением следующего:

  • В случае словаря ключ является строкой, а синтаксис – [ключ].

  • В случае модуля ключ является идентификатором, а синтаксис – .key.

В случае словаря ключ является строкой, а синтаксис – [ключ].

В случае модуля ключ является идентификатором, а синтаксис – .key.

Классы как Модули

Модуль – это специализированный словарь, в котором можно хранить код Python, чтобы вы могли получить к нему «.» Оператор. Класс – это способ взять группу функций и данных и поместить их в контейнер, чтобы вы могли получить к ним доступ с помощью оператора «.».

Если вам нужно создать класс, похожий на модуль employee, вы можете сделать это, используя следующий код:

class employee(object):
   def __init__(self):
      self. Age = Employee Age is ##”
   def EmployeID(self):
      print (“This is just employee unique identity”)

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

Объекты похожи на мини-импорт

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

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

this_obj = employee() # Instantiatethis_obj.EmployeID() # get EmployeId from the class
print(this_obj.Age) # get variable Age

Вы можете сделать это любым из следующих трех способов –