如何在Python中的for循环中创建对象列表而不继承属性值

时间:2019-07-02 02:43:03

标签: python oop arraylist

下面的代码创建了一个对象列表,该对象包含一个列表作为属性,以及一种将项目追加到此列表的方法,但是这种追加无法正常工作。

我的期望:
每个对象MyList内部的每个列表MyObj只有3个元素。

工作方式:
MyList中的列表MyObj[0]具有3个元素
MyList中的列表MyObj[1]有6个元素
MyList内的列表MyObj[2]有9个元素

在我看来,对象MyObj[i]附加了先前对象MyList的{​​{1}}。该代码应如何使每个MyObj[i-1]的每个列表MyList仅具有方法MyObj[i]插入的3个元素?

Python代码:

add_to_list

1 个答案:

答案 0 :(得分:1)

您还需要添加MyObj[i].MyList.clear()行:

MyObj = []

for i in range(3):
    MyObj.append(MyClass())
    MyObj[i].add_to_list()

    print("Object " + str(i))
    print(MyObj[i].MyList)
    MyObj[i].MyList.clear()

输出:

Object 0
['Item 0', 'Item 1', 'Item 2']
Object 1
['Item 0', 'Item 1', 'Item 2']
Object 2
['Item 0', 'Item 1', 'Item 2']