Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/backbone.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
python-函数内部的列表赋值_Python_Class_Variable Assignment - Fatal编程技术网

python-函数内部的列表赋值

python-函数内部的列表赋值,python,class,variable-assignment,Python,Class,Variable Assignment,我是Python新手,我正在尝试使用一个函数将元素添加到对象拥有的列表中。 以下是我的代码的简化版本: class TElement: vec = [] class GTop: ElList = [] def AddElement(self, vect): NewEl = TElement() for i in range(len(vect)): NewEl.vec.append(vect[i])

我是Python新手,我正在尝试使用一个函数将元素添加到对象拥有的列表中。 以下是我的代码的简化版本:

class TElement:
    vec = []

class GTop:

    ElList = []

    def AddElement(self, vect):
        NewEl = TElement() 
        for i in range(len(vect)): 
            NewEl.vec.append(vect[i])

        self.ElList.append(NewEl)


myvec1 = ["a",1,2,"b"]
myvec2 = ["a","c",2,"b"]

Mytop = GTop()

Mytop.AddElement(myvec1)

Mytop.AddElement(myvec2)
通过以上代码,我得到:

Mytop.ElList[0].vec=['a',1,2',b']

Mytop.ElList[1].vec=['a',1,2',b',a',c',2',b']

虽然我想:

Mytop.ElList[0].vec=['a',1,2',b']

Mytop.ElList[1].vec=['a','c',2',b']

出于某种原因,当我退出AddElement函数时,NewEl并没有被删除。 你能澄清我做错了什么吗?
谢谢。

如果您像这样更改
TElement
,您应该会得到预期的输出:

class TElement:
    def __init__(self):
        self.vec = []
正如@delnan在评论中指出的,阅读另一个答案,它解释得很好