Kodomo

Пользователь

Занятие 4.

Краткое содержание: Объекты. Классы.


План рассказа

  1. Про задание:
    • ЧАВО про darcs: darcs changes; darcs show contents -p "patch name"; darcs help --match

    • См. почту.
  2. Объекты и классы.
    • Что такое объект? Откуда возникло понятие. Физический смысл. Структура + методы. Картинки.
    • Терминология: поля, методы.
    • Что такое класс? Нужны ли классы?
    • Что такое наследование?
    • Синтаксис класса в питоне:
      • простейший пример
      • self
      • использование класса
    • init

    • Пример с наследованием
    • Самодокументация

Обязательно научиться

Задачи

/!\ Не забывайте писать самодокументацию и doctest и вносить версии в репозиторий.

Следующие задачи нужно делать в файле bend2.py:

  1. Напишите класс Atom:
    • объект создаётся из строки (приблизительно 80 символов) PDB-файла. (См. Предыдущее занятие на тему формата).

    • объект хранит координаты в виде чисел и в виде объекта Vector
  2. Напишите класс Residue:
    • объект хранит в себе список атомов
    • метод add(atom) добавляет атом в список
    • метод is_next(residue) возвращает True, если в текущем основании есть атом C, и в residue есть атом N такие, что расстояние между ними меньше 1.4 ангстрема
    • метод is_neighbour(residue) возвращает True, если is_next верно либо для текущего основания и residue, либо в обратном порядке
  3. Напишите класс PDB:
    • хранит список атомов и список оснований
    • объект создаётся из PDB-файла
    • метод residue(n), если основания с номером n ещё нет, создаёт новое пустое основание; возвращает основание с номером n
  4. Измените класс Atom таким образом, чтобы при инициализации ему передавалась строка и объект PDB. При создании атом добавляет себя в соответствующее основание. Добавьте атому поле residue