Быстрое введение в процедурное программирование на языке Python
Одной из фундаментальных особенностей любого языка программирования является предоставление возможности использовать типы данных.
В Python str и элементарные числовые типы int являются неизменными. То есть установив однажды значение, его нельзя уже больше изменить.
Составляющая №2 Ссылки на объекты
Когда интерпретатор выполняет первую строчку, то создает сначала объект типа str с надписью ‘‘blue’’, потом создать ссылку с именем х и присвоит ей адрес этого объекта в памяти.
= — не оператор присваивания как в других языках, этот оператор связывает ссылку с объектом, который находится в памяти.
В Python используется динамический контроль типов — т.е. ссылки на объекты могут повторно присваиваться к другим объектам другого типа.
В Python существует несколько типов коллекций. Рассмотрим пока только два из них: это tuple (кортежи) и list (списки) .
Кортеж относится к типу неизменяемых объектов, после создания его уже нельзя изменить. Списки — изменяемые объекты, поэтому мы можем легко добавлять и удалять оттуда объекты по желанию.
Т.к. списки и кортежи являются последовательностями, то мы можем применять оператор [ ] — для извлечения определенного элемента
Оператор is — это двухместный оператор, который возвращает True, если ссылка слева указывает на тот же объект, что и ссылка справа. И False в противном случае. Is сравнивает адреса памяти у двух ссылок.
Используется для таких типов данных, которые являются последовательностями, как строки, кортежи (наборы), списки.
Операторы and и or вычисляются по короткой схеме и возвращают операнд, определяющий результат — они не возвращают переменные типа Boolean (только если операнды сами являются переменными типа Boolean )
Мы уже упоминали, что все инструкции, встречающиеся в файле с расширением .py исполняются по очереди, одна за другой.
Порядок движения потока управления может изменяться вызовом функций, такими как циклы и условные операторы, а так же, когда возбуждаются исключения.
В языке Python cпециальный объект None, пустой список, пустая строка, пустой кортеж, числовой элемент 0 — это все элементы данных с булевским значением False. Все остальные оцениваются как True.
В качестве iterable могут использоваться любые объекты, поддерживающие итерации: строки, списки, кортежи и т.д. Переменная variable пробегает по всем элементам объекта.
Многие функции и методы языка Python в случае появления ошибок или наступления других важных событий возбуждают исключения.
Исключения — это объект, такой же как и любые другие объекты в языке Python, который при преобразовании в строку (т.е. при выводе на экран) воспроизводится как строка с текстом сообщения.
Здесь часть as variable — может быть необязательной, нас может волновать лишь сам факт появления исключения, а текст сообщения может быть неинтересен.
Если инструкции в блоке try: выполняются без ошибок, блоки except просто пропускаются. Если в блоке try будет возбуждено исключение, то управление будет передано первому блоку соответствующего предложения except.
Т.е. любые инструкции блока try расположенные ниже той инструкции, которая вызвала исключение — выполняться не будут.
В случае исключения и если указана часть as variable, внутри блока обработки исключения переменная variable будет ссылаться на объект исключения.
Если исключение возникнет в блоке except и для возникшего исключения не будет найдено соответствующее предложение except, то Python начнет поиск блока except в следующем объемлющем контексте. Если соответствие найдено не будет, то программа аварийно завершит работу.
Концепция ООП в Python – основные понятия
Как и другие языки программирования общего назначения, Python с самого начала является объектно-ориентированным языком. Это позволяет нам разрабатывать приложения с использованием объектно-ориентированного подхода. В Python мы можем легко создавать и использовать классы и объекты.
Объектно-ориентированная парадигма заключается в разработке программы с использованием классов и объектов. Объект связан с сущностями реального слова, такими как книга, дом, карандаш и т. д. Концепция Oops в Python фокусируется на написании повторно используемого кода. Это широко распространенный метод решения проблемы путем создания объектов.
Ниже приведены основные принципы системы объектно-ориентированного программирования:
Класс
Класс можно определить как набор объектов. Это логическая сущность, имеющая определенные атрибуты и методы. Например: если у вас есть класс сотрудника, он должен содержать атрибут и метод, то есть идентификатор электронной почты, имя, возраст, зарплату и т. д.
Объект
Объект – это сущность, у которой есть состояние и поведение. Это может быть любой объект реального мира, например, мышь, клавиатура, стул, стол, ручка и т. д.
В Python все является объектом, и почти все имеет атрибуты и методы. Все функции имеют встроенный атрибут __doc__, который возвращает строку документации, определенную в исходном коде функции.
Когда мы определяем класс, он должен создать объект для выделения памяти. Рассмотрим следующий пример.
class car: def __init__(self,modelname, year): self.modelname = modelname self.year = year def display(self): print(self.modelname,self.year) c1 = car("Toyota", 2016) c1.display()
В приведенном выше примере мы создали класс с именем car, и у него есть два атрибута modelname и year. Мы создали объект c1 для доступа к атрибуту класса. Объект c1 выделит память для этих значений. Мы узнаем больше о классе и объекте в следующем уроке.
Метод
Метод – это функция, связанная с объектом. В Python метод не уникален для экземпляров класса. У любого типа объекта могут быть методы.
Наследование
Наследование – это наиболее важный аспект объектно-ориентированного программирования, который имитирует реальную концепцию наследования. Он указывает, что дочерний объект приобретает все свойства и поведение родительского объекта.
Используя наследование, мы можем создать класс, который использует все свойства и поведение другого класса. Новый класс известен как производный класс или дочерний класс, а тот, свойства которого получены, известен как базовый класс или родительский класс.
Это обеспечивает возможность повторного использования кода.
Полиморфизм
Полиморфизм состоит из двух слов «poly» (много) и «morphs» (форма). Под полиморфизмом мы понимаем, что одну задачу можно выполнять по-разному. Например – у вас класс животных, и все животные говорят. Но “говорят” по-иному. Здесь «говорящее» поведение в некотором смысле полиморфно и зависит от животного. Итак, абстрактное понятие «животное» на самом деле не «говорит», но конкретные животные (например, собаки и кошки) имеют конкретную реализацию действия «говорить».
Инкапсуляция
Инкапсуляция также является важным аспектом объектно-ориентированного программирования. Она используется для ограничения доступа к методам и переменным. При инкапсуляции код и данные объединяются в один блок от случайного изменения.
Абстракция данных
И абстракция данных, и инкапсуляция часто используются как синонимы. Являются почти однозначными, поскольку абстракция данных достигается за счет инкапсуляции.
Абстракция используется, чтобы скрыть внутренние детали и показать только функциональные возможности. Абстрагирование чего-либо означает присвоение имен вещам, чтобы имя отражало суть того, что делает функция или вся программа.
Объектно-ориентированные и процедурно-ориентированные языки программирования
Разница между объектно-ориентированным и процедурно-ориентированным программированием приведена ниже:
Объектно-ориентированное программирование | Процедурное программирование | |
---|---|---|
1. | Объектно-ориентированное программирование – это подход к решению проблем, который используется там, где вычисления выполняются с использованием объектов. | В процедурном программировании используется список инструкций для пошаговых вычислений. |
2. | Упрощенная разработка и обслуживание. | В процедурном программировании нелегко поддерживать коды, когда проект становится длинным. |
3. | Имитирует сущность реального мира. Так что реальные проблемы можно легко решить с помощью ООП. | Не моделирует реальный мир. Работает по пошаговым инструкциям, разделенным на небольшие части, называемые функциями. |
4. | Обеспечивает сокрытие данных. Так что это более безопасно, чем процедурные языки. Вы не можете получить доступ к личным данным из любого места. | Процедурный язык не обеспечивает надлежащего способа привязки данных, поэтому он менее безопасен. |
5. | Примерами объектно-ориентированных языков программирования являются C ++, Java, .Net, Python, C # и т. д. | Примеры процедурных языков: C, Fortran, Pascal, VB и т. д. |