Gepubliceerd met Google Documenten
Python task 18.11.2014
Wordt elke 5 minuten automatisch geüpdatet

Задания по 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