我正在尝试从头开始创建自己的Nbody模拟。我创建了一个类(称为Body),其中包含用于计算来自其他实体的力并相应地移动它的函数。 我创建了另一个名为System的类,它定义了主体的数量,控制了位置的更新并更新了系统的图。 如果我单独定义变量的数量,这两个类都可以正常工作:
d1 = Body(i)
d2 = Body(i)
....
并将它们放在列表list = [d1,d2, ...]
中。我是一个字符串(使用的名称
这种方法的问题在于,做单个变量定义然后将它们放在列表中是很烦人的。我试图做一个循环:
self.liste = []
for i in range(n):
self.liste.append(Body(str(i)))
但是返回包含Nonetypes([None, None, None, ....]
)的列表。
对我的设置很重要的是,我最终得到了一个不同类的列表(如果它们是由变量名定义的,那就没关系)。有人可以帮我吗?
答案 0 :(得分:0)
以下适用于我:
class Body:
bodies = []
def __init__(self, n):
self.n = n
def __str__(self):
return str(self.n)
for i in range(5):
Body.bodies.append(Body(i))
for body in Body.bodies:
print body
# This also works.
print body.n
请注意,如果您直接尝试打印课程,则需要使用__str__
(或__repr__
)方法。