分配时列表的Python深层复制

amn*_*amn 6 python metaclass list deep-copy

在python考试中练习了这个练习.试图返回如下列表的深层副本:

l = list()
l = [0,1,2]
l1 = l
l[0] = 1
Run Code Online (Sandbox Code Playgroud)

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
Run Code Online (Sandbox Code Playgroud)

据我所知,'='in python是一个语句,而不是一个运算符,它不能被覆盖.关于如何在作业中返回深层副本的任何想法?已经尝试了很多但没有成功.

Dae*_*yth 1

据我所知,如果不使用某种额外的语法,这在 python 中是不可能的。正如您所说,您无法覆盖=.