我想在python中创建对象数组。
class user:
j = [0, 0]
AllUsers = []
AllUsers.append(user)
AllUsers.append(user)
AllUsers[0].j[0] = 1
for i in AllUsers:
print(i.j)
我期望输出:
[1, 0]
[0, 0]
但正在得到:
[1, 0]
[1, 0]
错误在哪里?
因此,我已经看到“数组数组”存在类似的问题,但是我无法使用它们的解决方案。
最佳答案
您在混淆实例和类。这是一个工作示例:
class user:
def __init__(self):
self.j = [0, 0]
AllUsers = []
AllUsers.append(user()) # note the extra () which creates a new instance
AllUsers.append(user())
AllUsers[0].j[0] = 1
for i in AllUsers:
print(i.j)
关于python - 为什么列表中所有对象的属性都被更改?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/45117443/