Задания по Python от 18.11.2014
Задача №1. Мешалка.
Напишите класс-итератор с конструктором shuffle(iter, N), который является итератором по перемешанной последовательности. При этом любой элемент смещается от своего исходного положения не более чем на N позиций.
Итератор, который передается, может быть бесконечным. Поэтому нельзя получить все элементы и потом их перемешать.
На дополнительные баллы подлержите у итератора методы len и prev
При выполнении задания запрещается использовать дополнительные библитеки!
Задача №2. Иерархопостроитель.
Необходимо написать декоратор @register для классов. Декорироание класса приводит в тому, что ведется подсчет количества созданных экземпляров класса.
Помимо этого необходимо написать метод, который позволяет вывести количество экземпляров у каждого продекорированного класса.
При подсчете количества экземпляров необходимо в родительских классах учитывать также и наследников. Т.е. при такой ситуации:
@register
class A:
pass
@register
class B(A):
pass
A()
B()
Количество экземпляров А равно 2 (один от А(), второй от В()), количество экземпляров В - 1.
Не забудьте проверить свою программу на примерах:
@register
class A:
pass
class B(A):
pass
@register
class C(B):
pass
@register
class A:
pass
class B:
pass
@register
class C(A, B):
pass
@register
class A:
pass
@register
class B:
pass
@register
class C(A, B):
pass