Мне интересно, существует ли «стандартный» способ динамического запуска нескольких экземпляров класса и их получения?Создайте несколько классов и извлеките их
В приведенном ниже кодере появляются 10 велосипедов со случайными ценами и цветами, мне интересно, как бы я их перезвонил? Я играл с добавлением в список, но возвращаемые элементы - это строки.
bikes = []
class Bike:
style = ""
price = 0
colour = ""
def __init__(self, style, price, colour):
self.style = style
self.price = price
self.colour = colour
self.description = "a {0} {2} worth £{1}".format(self.colour, self.price, self.style)
def print_details(self):
print("description: {0}".format(self.description))
for b in range(10):
price = random.choice(random_prices)
colour = random.choice(random_colours)
bike = "bike" + str(b)
bike = Bike('bike', price, colour)
bikes.append(bike)
for i in bikes:
print_details(i)
Traceback (most recent call last):
print("description: {0}".format(self.description))
AttributeError: 'str' object has no attribute 'description'
Что такое 'bike =" bike "+ str (b)'? Он сразу заменяется *. Где ваша попытка добавить экземпляры в список, что именно вы должны * делать? – jonrsharpe
Вы можете создать их, используя понимание списка и перебрать этот список lis так: 'bikes = [Bike ('bike', random.choice (random_prices), random.choice (random_colours)) для _ в xrange (10)]' – Erik
@jonrsharpe Мне не удалось отправить снимок экрана с кодом, но я получил 'str объект не имеет атрибута' из traceback. 'bike =" bike "+ str (b)' была просто моей попыткой исправить ошибку. Код был обновлен, чтобы включить класс, и моя попытка добавить элементы в список – JONAS402