+7 (812) 703-02-02 info@hse.spbstu.ru

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. Промежуточная аттестация
Практические занятия    Зачет