Занятие 4.
Краткое содержание: Объекты. Классы.
Содержание
План рассказа
- Про задание:
ЧАВО про darcs: darcs changes; darcs show contents -p "patch name"; darcs help --match
- См. почту.
- Объекты и классы.
- Что такое объект? Откуда возникло понятие. Физический смысл. Структура + методы. Картинки.
- Терминология: поля, методы.
- Что такое класс? Нужны ли классы?
- Что такое наследование?
- Синтаксис класса в питоне:
- простейший пример
- self
- использование класса
init
- Пример с наследованием
- Самодокументация
Обязательно научиться
- Создавать свои классы
Задачи
Не забывайте писать самодокументацию и doctest и вносить версии в репозиторий.
Следующие задачи нужно делать в файле bend2.py:
- Напишите класс Atom:
объект создаётся из строки (приблизительно 80 символов) PDB-файла. (См. Предыдущее занятие на тему формата).
- объект хранит координаты в виде чисел и в виде объекта Vector
- Напишите класс Residue:
- объект хранит в себе список атомов
- метод add(atom) добавляет атом в список
- метод is_next(residue) возвращает True, если в текущем основании есть атом C, и в residue есть атом N такие, что расстояние между ними меньше 1.4 ангстрема
- метод is_neighbour(residue) возвращает True, если is_next верно либо для текущего основания и residue, либо в обратном порядке
- Напишите класс PDB:
- хранит список атомов и список оснований
- объект создаётся из PDB-файла
- метод residue(n), если основания с номером n ещё нет, создаёт новое пустое основание; возвращает основание с номером n
- Измените класс Atom таким образом, чтобы при инициализации ему передавалась строка и объект PDB. При создании атом добавляет себя в соответствующее основание. Добавьте атому поле residue