创建包含类的变量列表

2024-04-29 00:45:53 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试从头开始创建自己的Nbody模拟。我已经创建了一个类(称为Body),其中包含计算来自其他实体的力并相应地移动它的函数。 我创建了另一个类,叫做System,它定义了实体的数量,控制位置的更新,并更新了系统的一个图。 如果我这样单独定义变量的数量,两个类都可以正常工作:

d1 = Body(i)
d2 = Body(i)
....

把它们放在一个列表中。i是一个字符串(使用的名称 这个方法的问题是,做n个单独的变量定义,然后把它们放在一个列表中是很烦人的。我试过做一个循环:

self.liste = []
for i in range(n):
            self.liste.append(Body(str(i)))

但是它返回一个包含Nonetypes([None, None, None, ....])的列表。 对于我的设置来说很重要的一点是,我最终得到了一个n个不同类的列表(如果它们是由变量名定义的,这是可以的)。有人能帮我吗


Tags: 函数字符串self实体none列表数量定义
1条回答
网友
1楼 · 发布于 2024-04-29 00:45:53

以下是我的作品:

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

相关问题 更多 >