Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/python-2.7/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 创建包含类的变量的列表_Python_Python 2.7_Class - Fatal编程技术网

Python 创建包含类的变量的列表

Python 创建包含类的变量的列表,python,python-2.7,class,Python,Python 2.7,Class,我正在尝试从头开始创建自己的Nbody模拟。我创建了一个类(称为Body),其中包含计算其他实体的力并相应移动它的函数。 我创建了另一个类,称为System,它定义实体的数量,控制位置的更新,并更新系统的绘图。 如果我这样单独定义变量的数量,这两个类都可以正常工作: d1 = Body(i) d2 = Body(i) .... 并将它们放入一个列表list=[d1,d2,…]。i是一个字符串(使用的名称) 此方法的问题是,执行n个单独的变量定义,然后将它们放入列表中是令人厌烦的。我尝试过执行循

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

d1 = Body(i)
d2 = Body(i)
....
并将它们放入一个列表
list=[d1,d2,…]
。i是一个字符串(使用的名称) 此方法的问题是,执行n个单独的变量定义,然后将它们放入列表中是令人厌烦的。我尝试过执行循环:

self.liste = []
for i in range(n):
            self.liste.append(Body(str(i)))
但这将返回一个包含非类型的列表(
[None,None,None,…]
)。
对于我的设置来说,重要的是我最终得到了一个n个不同类的列表(如果它们是由变量名定义的,这是可以的)。有人能帮我吗?

以下内容适合我:

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

请注意,如果您直接尝试打印一个类,您需要一个
\uuu str\uuuuuuuu
(或
\uuuuu repr\uuuuuuu
)方法。

这对我很有效。请尝试在每个步骤后添加打印语句。返回的(Er..Printed)值是否与您期望的值匹配?这是什么意思“返回一个包含非类型的列表”你在哪里返回任何内容?你的意思是说
self.liste
最终是一个
None
值的列表,而
None
s的列表究竟来自哪里?当我打印self.liste时,它返回[None,None,None]根据您发布的代码,我看不出有任何理由认为这应该是一个问题。
\uuuuu str\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuu
和/或
\uuuuuuuuuuu repr\uuuuuuuuuuuuuuuuuuu