Решение задачи Кастомизированные контейнеры с Яндекс Контест
Без пояснения   Просмотров: 2213
Вас попросили написать 2 класса, CustomList и CustomDict, оба эти класса имеют атрибут data, в котором хранится ссылка на список или словарь соответственно. В конструкторе класса передается список или словарь, также атрибут data можно изменять в процессе работы с классами, то есть:
my_list = CustomList([1, 2, 3])
my_list.data = [1, 2]
Оба эти класса имеют одни и те же свойства:
- size - размер списка или словаря,
- max_value - максимальный элемент списка или максимальный ключ словаря
- min_value - минимальный элемент списка или минимальный ключ словаря
и также печать экземпляров обоих классов должна возвращать строку в формате:
My CustomList data [1, 2, 3] (My CustomDict data {1:1, 2:2, 3:3})
Общие свойства и методы этих двух классов должны реализованы в классе CommonProperties, от которого
будут
наследоваться
будут наследоваться классы CustomList и CustomDict.
max_value и min_value для словаря нужно считать не только по ключам, но и по значениям. В случае, если вы пытаетесь сравнить несравнимые объекты, нужно попытаться посчитать max_value и min_value только по ключам, если и это невалидно, нужно выкинуть исключение TypeError. Для этого функционала
реализуйте
класс
реализуйте класс DictProperties, от которого будет наследоваться класс CustomDict.
Если же вы пытаетесь сравнить несравнимые для списка объекты (например, строки и числа), нужно выкинуть исключение TypeError.
my_list = CustomList([1, 2, 3])
my_list.data = [1, 2]
Оба эти класса имеют одни и те же свойства:
- size - размер списка или словаря,
- max_value - максимальный элемент списка или максимальный ключ словаря
- min_value - минимальный элемент списка или минимальный ключ словаря
и также печать экземпляров обоих классов должна возвращать строку в формате:
My CustomList data [1, 2, 3] (My CustomDict data {1:1, 2:2, 3:3})
Общие свойства и методы этих двух классов должны реализованы в классе CommonProperties, от которого
будут
наследоваться
будут наследоваться классы CustomList и CustomDict.
max_value и min_value для словаря нужно считать не только по ключам, но и по значениям. В случае, если вы пытаетесь сравнить несравнимые объекты, нужно попытаться посчитать max_value и min_value только по ключам, если и это невалидно, нужно выкинуть исключение TypeError. Для этого функционала
реализуйте
класс
реализуйте класс DictProperties, от которого будет наследоваться класс CustomDict.
Если же вы пытаетесь сравнить несравнимые для списка объекты (например, строки и числа), нужно выкинуть исключение TypeError.
Заявка на расчет
Автор: Администратор