Python在for循环中创建对象

lsk*_*jar 3 python

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

class body:
    def __init__(self, name, number, L):
        self.name = name
        self.number = number
        self.L = L
Run Code Online (Sandbox Code Playgroud)

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

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

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

body[3].L = 2
Run Code Online (Sandbox Code Playgroud)

非常感谢你的帮助.

unu*_*tbu 12

请注意,这body是一个类.使用body[i]建议你可能打算body用作列表.如果要创建10个实例的列表body,请不要为列表命名body.您可以改为命名列表bodies并使用列表解析来定义它:

bodies = [body("test_name", i, 1.) for i in range(0, 10)]
bodies[3].L = 2
Run Code Online (Sandbox Code Playgroud)

顺便说一句,PEP8样式指南建议所有类都遵循CapWords惯例.所以要符合惯例,body应该是Body.按照这个惯例,每个阅读代码的人都会立即理解什么是类,什么不是.