DEV-PY200. Объектно-ориентированное программирование на языке Python
Длительность дисциплины: 40 ак.ч.
Аннотация
Курс DEV-PY200. Объектно-ориентированное программирование на языке Python
направлен на изучение принципов объектно-ориентированного подхода при
разработке приложений с использованием языка программирования Python.
Курс является логическим продолжением базовых курсов по процедурному программированию на языке Python.
Основные задачи курса:
- Введение понятия методов и переменных объекта;
- Изучение базовых концепций объектно-ориентированного
программирования на языке Python»: инкапсуляция, наследование и
полиморфизм;
- Работа с базовыми компонентами фреймворка Django
Знания и умения, полученные в результате изучения
В результате освоения программы обучающийся должен уметь:
• создавать посредством классов пользовательские типы данных для решения конкретных задач;
• создавать и использовать пользовательские исключения;
• создавать объекты-генераторы;
• использовать декораторы классов и функций;
• осуществлять перегрузку операторов.
• работать с формами, проверять параметры форм (валидацию);
В результате освоения программы, обучающийся должен знать:
• базовые понятия объектно-ориентированного программирования;
• отличия процедурных и объектно-ориентированных языков программирования высокого уровня;
• понятия инкапсуляции, наследования и полиморфизма;
• возможности использования классов для решения практических задач.
• что такое представления, встроенные представления и функции представления;
• что такое шаблоны и формы, их назначение и использование.
В результате освоения программы обучающийся должен приобрести практический опыт:
• создания пользовательских классов на базе языка программирования Python;
• планирования собственной деятельности по реализации простых классов.
• разработки серверной части Web-сайтов на языке Python с использованием фреймворка Django;
Содержание дисциплины
Тема 1. Основы объектно-ориентированного программирования (ООП) на языке Python
1.1 Базовые понятия объектно-ориентированного программирования
Логика модели на основе функционального подхода.
Объектно-ориентированный подход.
1.2 Класс и экземпляр класса.
Понятие класса и экземпляра класса.
Создание класса.
Создание экземпляра класса
1.3 Время жизни объекта Конструктор объекта (__init__).
Как правильно инициализировать атрибуты.
Документирование класса
Практические занятия
1. Создание простого класса
2. Создание экземпляра класса.
3. Создание класса, использующего различные типы атрибутов
Тема 2. Атрибуты и методы
2.1 Атрибуты и методы экземпляра
Атрибуты экземпляра.
Методы экземпляра класса.
Магические методы __repr__ и __str__
2.2 Атрибуты и методы класса
Атрибуты класса.
Методы класса
2.3 Статические методы
Статические методы
2.4 Pydantic модели
Валидация по аннотации типов.
Валидация значений.
Использование pydantic моделей в качестве аннотации типов для валидации.
Обязательные и необязательные поля.
Методы dict и copy.
Фильтрация полей
Практические занятия
1. Создание методов экземпляра класса
2. Создание методов класса
3. Работа с Pydantic моделями
Тема 3. Инкапсуляция, наследование и полиморфизм.
3.1 Инкапсуляция
Понятие инкапсуляции.
Реализация инкапсуляции в Python.
Свойства в Python.
Применение свойств.
3.2 Наследование
Понятие наследования.
Методы при наследовании.
MRO.
Одиночное наследование.
Инкапсуляция при наследовании.
3.3 Полиморфизм
Понятие полиморфизма.
Перегрузка методов.
Перегрузка магического метода __repr__.
Перегрузка магического метода __eq__.
Практические занятия
1. Наследование классов
2. Переопределение методов базового класса
Тема 4. POST запросы и формы
4.1 Введение в POST-запросы и формы в Django
Обзор HTTP-методов и их использование в Django
Различие между GET и POST запросами;
Чтение данных POST-запроса во view-функциях;
4.2 Работа с формами в Django
Создание форм в Django.
Работа с полями форм.
Обработка отправки формы во view-функциях.
Валидация данных формы в Django;
4.3 Интеграция форм в шаблоны Django
Вывод форм на странице с помощью тега form;
Работа с CSRF-токеном в формах;
Вывод ошибок валидации формы в шаблоне.
Практические занятия
1. Работа с формами.
2. Создание собственных форм
Тема 5. Классовые представления
5.1 Введение в CBV
Создание базового представления на основе классов.
Обработка GET-запросов и POST-запросов.
5.2 Введение в Generic Views
Что такое Generic Views и зачем они нужны.
Создание и использование Generic Views.
Практические занятия
1. Создание Template view
2. Создание Form view
Тема 6. Промежуточная аттестация
Практические занятия Зачет