使用包含类

时间:2016-10-30 22:52:08

标签: python python-2.7 class

我正在尝试从头开始创建自己的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, ....])的列表。 对我的设置很重要的是,我最终得到了一个不同类的列表(如果它们是由变量名定义的,那就没关系)。有人可以帮我吗?

1 个答案:

答案 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__)方法。