我是Python面向对象编程的新手,遇到了一个障碍。我试图迭代类的list属性,但是我的循环会打印整个列表,而不是每个项。你知道吗
班级:
class Population:
def __init__(self, population):
self.population = population
self.popList = []
pool = ThreadPool(mp.cpu_count()-1)
self.popList.append([pool.apply(Creature.P, args=(
self, 0, random.randint(1, 2))) for creature in range(population)])
pool.close()
pool.join()
if __name__ == "__main__":
import doctest
doctest.testmod()
第一次调用(准确创建填充和popList):
# RANDOM FIRST GENERATION INITIALIZATION
pop = Population(population)
然后叫这个:
for x in pop.popList:
print(x)
但是在这个例子中x
是整个popList
,而不是单个项。你知道吗
这条线:
应该是这样的:
你知道吗
您正在将一个列表附加到
popList
,因此您要使它成为一个包含一个列表的列表,并且该内部列表包含所有的填充。你知道吗所以原始代码中的
popList
最终会变成这样:[[Creature, Creature, Creature]]
当你真的想拥有它的时候,它只是一个生物列表:
[Creature, Creature, Creature]
相关问题 更多 >
编程相关推荐