Глубокая копия списка на Python для заданий

Получил это упражнение на экзамене по питону. Попытка вернуть глубокую копию списка вроде этого:

l = list()
l = [0,1,2]
l1 = l
l[0] = 1

l1 должен содержать [0,1,2] не [1,1,2]

Упражнение, указанное для реализовать его с помощью метакласса.

class deep(type):
    def __new__(meta, classname, bases, classDict):
        return type.__new__(meta, classname, bases, classDict)
    def __init__(cls, name, bases, dct):
        super(deep, cls).__init__(name, bases, dct)
    def __call__(cls, *args, **kwds):
        return type.__call__(cls, *args, **kwds)            
class list(metaclass=deep):
    def __init__(self):
        pass

Насколько мне известно, '=' в Python является оператором, а не оператором, и его нельзя переопределить. Есть идеи, как вернуть полную копию при назначении? Пытался довольно много, но безуспешно.

6
задан A.J. Uppal 5 June 2014 в 02:32
поделиться