Классы

Класс — шаблон, описывающий правила создания и поведение объекта.

Объект — экземпляр, созданный на основе шаблона.

Поле — используется для хранения значения.

Метод — функция, связанная с классом.

Магический метод — зарезервированные методы, отвечающие за поведение объекта.

Название

Применение

__init__

Инициализация объекта

__str__

Преобразование к строке str(obj)

__eq__

Проверка на равенство ==

__getitem__

Оператор доступа к элементам
some_dict[“item”]

Пример:

class Person:  # Объявление класса
    def __init__(self, name, age): # Метод инициализации или по другому конструктор
        self.age = age   # Установка значений полей
        self.name = name

    def __str__(self):
        return f"{self.name} is {self.age} years old"


person = Person('John', 20)  # Создание экземпляра
person.name = 'James' # Установка значения поля

print(person)

Здесь __init__ определяет как будет создаваться новый объект и какие параметры будет принимать при создании.

__str__ определяет как экземпляр будет печататься на экране с помощью функции print и преобразовываться к строке с помощью str.

Задачи

  1. Создать класс, описывающий человека. Должны быть поля для имени, фамилии и возраста. Создать экземпляр и вывести информацию о человеке.

  2. Доработать предыдущий класс, чтобы вся информация о человеке была доступна при вызове str над экземпляром.

  3. Добавить метод greet, вызов которого будет выводить в консоль информацию о человеке в формате "Привет! Меня зовут Петров Василий, мне 12 лет".

  4. Добавить поле grades, в котором будет храниться список оценок. Создать список учеников, заполняя оценки каждого случайными числами.

  5. Вывести информацию об учениках в порядке убывания среднего балла. Подсчёт среднего балла вынести в отдельный метод.

  6. Создайте класс Point, экземпляры которого будут создаваться из координат x и y.

  7. Создайте класс прямоугольник — Rectangle. Метод __init__ принимает две точки — левый нижний и правый верхний угол. Каждая точка представлена экземпляром класса Point. Реализуйте методы вычисления площади и периметра прямоугольника.

  8. Добавьте в класс Rectangle метод contains. Метод принимает точку и возвращает True, если точка находится внутри прямоугольника и False в противном случае.