я пытался найти anwser на этот вопрос, но я не могу найти хорошие слова ...Python: Как создать динамический список значений класса
Я хочу знать, как я могу создать список Value help в экземплярах класса. То, что я не хочу, что:
class Test:
def __init__(self,i)
self.i = i
inst1 = Test(2)
inst2 = Test(5)
MyList = [inst1.i,inst2.i]
В этой точке MyList = [2,5] если изменить значение, если inst1
inst1.i = 4
print MyList
[2,5]
MyList ЕЩЕ [2,5], но Я хочу, чтобы это было обновлено до [4,5]
print MyList
[4,5]
Так что мой вопрос заключается в том, как создать список, который указывает на переменную, а не значение переменной?
Если вы хотите знать, почему: я запускаю симуляцию MonteCarlo, в которой у меня много белков, каждая с одним значением энергии, и каждый белок создается из класса протеина.
class Protein:
def __init__(self,sequence,energy):
self.sequence = sequence
self.energy = energy
Эта энергетическая ценность некоторых белков обновляется во время моделирования montecarlo. Мне нужен список всех энергий для выполнения некоторых вычислений по распределению. Правильно знаю, я обновил список с циклом for, но было бы более эффективным, если бы у меня был список, указывающий на переменную, таким образом, каждый раз, когда энергия в классе Protein изменяется, список обновляется автоматически.
Большое спасибо!
Почему бы не хранить экземпляры непосредственно в списке и не манипулировать ими? 'MyList = [inst1, inst2]', тогда у вас есть список ссылок на ваши экземпляры. Любые изменения в экземплярах также видны в списке. –
Можете ли вы объяснить, почему вам нужно значение int, а не экземпляр класса в списке? Возможно, какой-то симпатичный прокси-объект может быть создан, но предложение @MartijnPieters - это, вероятно, простой путь вперед. Нет простого способа сохранить ref в int. –
Да, я хоть об этом, но как я могу получить значение тогда? например, если я хочу получить гистограмму, и я: hist, bin = np.histogram (MyList) это не сработает. – Xqua