【发布时间】:2013-03-02 23:14:40
【问题描述】:
我是 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 没有被删除。 你能澄清我做错了什么吗? 谢谢。
【问题讨论】:
标签: python class variable-assignment