Как я могу генерировать экземпляры экземпляров динамически? В частности, что я хочу сделать:Динамическое создание экземпляров класса в Python
Я извлекаю данные из электронной таблицы, которая преобразуется в CSV. Строка - это заголовок. После строки заголовка каждая строка представляет данные об определенном порядке (col1 - идентификатор заказа, col2 - имя клиента, col 3 - дата, col 4 - количество и т. Д.). Прямо сейчас я импортирую CSV в список словарей. Поэтому каждый элемент в списке хранит словарь, который извлекает ключ из строки заголовка. Таким образом, я мог бы LookUp количество заказа № 5 по:
orderDict[5]['quantity']
Я новичок в объектно-ориентированное программирование ... но хотелось бы, чтобы каждый из этих заказов экземпляр класса Order. Итак, я хотел бы создать класс под названием «Заказ», а затем вытащить свойства из строки заголовка CSV. Так, что-то вроде (inputList список, который был стянут из файла CSV):
class Order(object):
"""Defines an individual order"""
def __init__(self, inputList):
for z in range(len(inputList[0]))
self.inputList[0][z] = None
я тогда хотел бы иметь некоторый код, который проходит через данные, импортированные из CSV и создает экземпляр для каждого ряд.
for a in range(len(inputList))
if a != 0:
orderName = 'order%d' % (a)
orderName = Order() #I know this won't work... but not sure how I variably name this
for b in range(len(inputList[a]))
orderName.b = inputList[a][b]
В результате будет экземпляр называется Заказ1, order2, order3, порядка 4, и т.д. Количество экземпляров, созданных будет зависеть от количества строк в исходных данных. Может быть 4 ... может быть тысячи.
Таким образом, если я хочу, чтобы найти величину порядка 5, то я могу просто позвонить по:
order5.quantity
Однако, до сих пор кажется, что я должен был бы явно создать каждый экземпляр вручную:
order1 = Order()
order2 = Order()
order3 = Order()
Не очень удобно или динамично при работе с тысячами заказов (и растет). Похоже, что должен быть способ динамически генерировать эти экземпляры на основе данных, подаваемых в программу.