我想在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]
错误在哪里?
所以,我已经看到了"阵列阵列的类似问题"但我无法使用他们的解决方案。
答案 0 :(得分:3)
您正在混淆实例和类。这是一个有效的例子:
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)
答案 1 :(得分:0)
我认为这是您尝试粘贴的代码?
README.md
有两个主要问题。首先,class user:
j = [0, 0]
AllUsers = []
AllUsers.append(user)
AllUsers.append(user)
AllUsers[0].j[0] = 1
for i in AllUsers:
print(i.j)
是一个列表,而不是一个数组。其次,您将一个类附加到列表中,而不是该类的实例。要实现您的目标,您需要创建附加的用户类的实例。这看起来更像是
AllUsers
为了格式化,通常最好为您的类使用大写的第一个字母,这样它们很容易区分变量和类实例。