Python在for循环中创建对象

时间:2013-05-08 22:51:14

标签: python

我有一个类来分配一些参数:

class body:
    def __init__(self, name, number, L):
        self.name = name
        self.number = number
        self.L = L

我想将这些参数分配给10个几乎相同的主体,如:

for i in range(0, 10):
    body[i].name = "test_name"
    body[i].number = i
    body[i].L = 1.

并且能够改变,比如说身体3的参数L从1到2:

body[3].L = 2

非常感谢您的帮助。

1 个答案:

答案 0 :(得分:12)

请注意,body是一个类。使用body[i]表示您可能打算将body用作列表。如果要创建body的10个实例的列表,请不要将列表body命名为。您可以将列表命名为bodies,并使用list comprehension

进行定义
bodies = [body("test_name", i, 1.) for i in range(0, 10)]
bodies[3].L = 2

顺便说一句,PEP8 Style Guide建议all classes follow the CapWords convention。因此,为了符合惯例,body应为Body。按照这个惯例,每个阅读代码的人都会立即理解什么是课程,什么不是。