2013-05-08 2 views
2

У меня есть класс, чтобы присвоить некоторые параметры: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. 

И быть в состоянии изменить, позволяет сказать, параметр L тела 3 от 1 до 2:

body[3].L = 2 

большое спасибо за помощь.

ответ

12

Отметьте, что body - это класс. Используя body[i], вы можете намереваться использовать список body. Если вы хотите создать список из 10 экземпляров из body, не следует указывать также список 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. Следуя этому соглашению, каждый, кто читает ваш код, сразу поймет, что такое класс, а что нет.

+0

Большое спасибо за помощь. Проблема решена. Благодаря! – avstenit

Смежные вопросы