Хорошо, так что в основном, что я читаю данные из файла, и с этими данными я хочу создать объект для каждой строки.
Так что-то вроде:
bar = [['a','b'],['c','d']]
for foo in bar:
foo = Class_name(list_of_arguments)
Каким будет лучший способ "распаковать" список? Будет ли это лучше всего сделано в методе инициализации класса или было бы лучше сделать это до создания объекта и передать аргументы в формате non-? Я прошу, потому что в списках содержится информация, относящаяся к объекту, который будет использоваться классом.
Также я хотел бы, чтобы у каждого объекта было уникальное имя, что я должен сделать для этого? Было бы лучше использовать одно из значений в списке?
Я... думаю, я понимаю ваш вопрос. Я бы подошел к нему так:
class myClass():
def __init__(self, *args):
# something here that actually uses the arguments.
data = [['a', 'b'], ['c', 'd']]
objects = [myClass(*vals) for vals in data]
Это должно создать экземпляр myClass для каждого набора значений и вернуть список новых объектов, доступных по индексу.
[x for x in y]
отбросит вас. Как только вы обернетесь вокруг них, следующая идея, использованная здесь, заключается в том, что я распаковываю внутренние списки, чтобы передать их конструктору для myClass. Вот где myClass(*vals)
. HTH.
foo
в цикле for? Что такоеlist_of_arguments
что они должны означать?list_of_arguments
в вашем коде? Кроме того, вы действительно пытаетесь присвоить foo, которая является переменной итерации?