这是我的密码:
population= [stream_rules.StreamRules for n in range(len(buffer))]
l= [[] for n in range (len(buffer))]
for i in range(0, len(buffer)):
length = random.randrange(2, len(buffer[i]), 1)
split = random.randrange(1, length, 1)
population[i].split = split
for j in range(0, length):
l[i].append(buffer[i][j])
population[i].ch= l[i]
for i in range(0, len(population)):
print(population[i].ch)
注意StreamRules
是一个以ch
、split
作为变量的类。
我试图做的是复制列表中每一行的buffer
,然后将它传递给population[i].ch
问题是当我试图在最后一个循环中打印(为了验证)时,我发现所有ch
元素都指向我从buffer
复制的最后一个元素。我看不出问题出在哪里。谁能帮我一下吗
您在创建
population
时忘记了括号-实际上并不是在创建实例。它应该是population= [stream_rules.StreamRules() for n in range(len(buffer))]
。所有元素都是相同的,因为population
的元素不是instaces,所以您创建了名为ch
和split
的StreamRules
的静态成员,所有类成员的静态成员都是相同的相关问题 更多 >
编程相关推荐