Python: Все объекты добавляются в один и тот же лист одного и того же объекта вместо того что бы добавляться в разные объекты
всем хаюшки, в общем уже не первый раз сталкиваюсь с одной и той же проблемой. При выполнении начального кода есть итератор который генерит объекты, и так получается что почему то в каждую итерацию объекта neuron добавляются все элементы synapse_pool. До этого была такая же проблема с другим кодом - объекты так же при попытке связать каждому А некоторое количество Б получалось что каждая следующая итерация А имела все больше и больше объектов Б в своем пуле, хотя стояло ограничение на количество 5-6 добавлений. То есть такое ощущение будто бы все объекты добавляются не в локальную переменную класса, а в некую глобальную переменную общую для всех классов. Что с этим делать?
def Run(self):
global LYB, LAB
global LEB
global brain
global local_synapse_pool
counter1=0
globalcounter=0
localneurons =[]
localsynapses =[]
LYB=Library("просто набор слов что бы либ был больше 0")
for x in range(0,25):
brain+=[Neuron()]
print("создано нейронов: " + str(len(brain)))
print("Пул нейронов: " + str(brain))
localneurons=brain
for x in range(0,4):
local_synapse_pool+=[Synapse()]
print("создано синапсов: " + str(len(local_synapse_pool)))
print("Пул синапсов: " + str(local_synapse_pool))
localsynapses = local_synapse_pool
tempsyn = None
for neuro in localneurons:
print(str(neuro)+" <-- Neuron have this amount of Synapses -->"+str(len(neuro.Synapse_pool)) )
for X in range(0,4):
tempsyn=random.choice(localsynapses)
neuro.addsyn(tempsyn)
tempsyn.add_neuro(neuro)
tempneuro = None
for syna in localsynapses:
print(str(syna)+" <-- Synapse have this amount of Neurons -->"+str(len(syna.syn_group)) )
for X in range (0,4):
tempneuro=random.choice(localneurons)
syna.add_neuro(tempneuro)
tempneuro.addsyn(syna)
brain = localneurons
local_synapse_pool=localsynapses
for neuro in localneurons:
print(str(neuro)+" <-- Neuron have this amount of Synapses -->"+str(len(neuro.Synapse_pool)) )
for syna in localsynapses:
print(str(syna)+" <-- Synapse have this amount of Neurons -->"+str(len(syna.syn_group)) )
И это удовольствие выводит мне примерно следующий бэк (обратите внимание на то что число синапсов постепенно растет. Есть ощущение что по какой то причине то ли итератор тупой, то ли я.. Склоняюсь ко второму. Скажите что с этой херней делать?
!!!!
????
['просто', 'набор', 'слов', 'что', 'бы', 'либ', 'был', 'больше', '0', 'просто набор слов что бы либ был больше 0', 'просто набор слов что бы либ был больше 0', 'просто набор слов что бы либ был больше 0', 'просто набор слов что бы либ был больше 0', 'просто набор слов что бы либ был больше 0']
создано нейронов: 25
Пул нейронов: [<__main__.Neuron object at 0x0000020819FCFB20>, <__main__.Neuron object at 0x0000020819FCFB50>, <__main__.Neuron object at 0x0000020819FCFBB0>, <__main__.Neuron object at 0x0000020819FCFBE0>, <__main__.Neuron object at 0x0000020819FCFC10>, <__main__.Neuron object at 0x0000020819FCFC40>, <__main__.Neuron object at 0x0000020819FCFC70>, <__main__.Neuron object at 0x0000020819FCFCA0>, <__main__.Neuron object at 0x0000020819FCFCD0>, <__main__.Neuron object at 0x0000020819FCFD00>, <__main__.Neuron object at 0x0000020819FCFD30>, <__main__.Neuron object at 0x0000020819FCFD60>, <__main__.Neuron object at 0x0000020819FCFD90>, <__main__.Neuron object at 0x0000020819FCFDC0>, <__main__.Neuron object at 0x0000020819FCFDF0>, <__main__.Neuron object at 0x0000020819FCFE20>, <__main__.Neuron object at 0x0000020819FCFE50>, <__main__.Neuron object at 0x0000020819FCFE80>, <__main__.Neuron object at 0x0000020819FCFEB0>, <__main__.Neuron object at 0x0000020819FCFEE0>, <__main__.Neuron object at 0x0000020819FCFF10>, <__main__.Neuron object at 0x0000020819FCFF40>, <__main__.Neuron object at 0x0000020819FCFF70>, <__main__.Neuron object at 0x0000020819FCFFA0>, <__main__.Neuron object at 0x0000020819FCFFD0>]
создано синапсов: 4
Пул синапсов: [<__main__.Synapse object at 0x0000020819FE51C0>, <__main__.Synapse object at 0x0000020819FE51F0>, <__main__.Synapse object at 0x0000020819FE5220>, <__main__.Synapse object at 0x0000020819FE5250>]
<__main__.Neuron object at 0x0000020819FCFB20> <-- Neuron have this amount of Synapses -->0
<__main__.Neuron object at 0x0000020819FCFB50> <-- Neuron have this amount of Synapses -->4
<__main__.Neuron object at 0x0000020819FCFBB0> <-- Neuron have this amount of Synapses -->8
<__main__.Neuron object at 0x0000020819FCFBE0> <-- Neuron have this amount of Synapses -->12
<__main__.Neuron object at 0x0000020819FCFC10> <-- Neuron have this amount of Synapses -->16
<__main__.Neuron object at 0x0000020819FCFC40> <-- Neuron have this amount of Synapses -->20
<__main__.Neuron object at 0x0000020819FCFC70> <-- Neuron have this amount of Synapses -->24
<__main__.Neuron object at 0x0000020819FCFCA0> <-- Neuron have this amount of Synapses -->28
<__main__.Neuron object at 0x0000020819FCFCD0> <-- Neuron have this amount of Synapses -->32
<__main__.Neuron object at 0x0000020819FCFD00> <-- Neuron have this amount of Synapses -->36
<__main__.Neuron object at 0x0000020819FCFD30> <-- Neuron have this amount of Synapses -->40
<__main__.Neuron object at 0x0000020819FCFD60> <-- Neuron have this amount of Synapses -->44
<__main__.Neuron object at 0x0000020819FCFD90> <-- Neuron have this amount of Synapses -->48
<__main__.Neuron object at 0x0000020819FCFDC0> <-- Neuron have this amount of Synapses -->52
<__main__.Neuron object at 0x0000020819FCFDF0> <-- Neuron have this amount of Synapses -->56
<__main__.Neuron object at 0x0000020819FCFE20> <-- Neuron have this amount of Synapses -->60
<__main__.Neuron object at 0x0000020819FCFE50> <-- Neuron have this amount of Synapses -->64
<__main__.Neuron object at 0x0000020819FCFE80> <-- Neuron have this amount of Synapses -->68
<__main__.Neuron object at 0x0000020819FCFEB0> <-- Neuron have this amount of Synapses -->72
<__main__.Neuron object at 0x0000020819FCFEE0> <-- Neuron have this amount of Synapses -->76
<__main__.Neuron object at 0x0000020819FCFF10> <-- Neuron have this amount of Synapses -->80
<__main__.Neuron object at 0x0000020819FCFF40> <-- Neuron have this amount of Synapses -->84
<__main__.Neuron object at 0x0000020819FCFF70> <-- Neuron have this amount of Synapses -->88
<__main__.Neuron object at 0x0000020819FCFFA0> <-- Neuron have this amount of Synapses -->92
<__main__.Neuron object at 0x0000020819FCFFD0> <-- Neuron have this amount of Synapses -->96
<__main__.Synapse object at 0x0000020819FE51C0> <-- Synapse have this amount of Neurons -->100
<__main__.Synapse object at 0x0000020819FE51F0> <-- Synapse have this amount of Neurons -->104
<__main__.Synapse object at 0x0000020819FE5220> <-- Synapse have this amount of Neurons -->108
<__main__.Synapse object at 0x0000020819FE5250> <-- Synapse have this amount of Neurons -->112
<__main__.Neuron object at 0x0000020819FCFB20> <-- Neuron have this amount of Synapses -->116
<__main__.Neuron object at 0x0000020819FCFB50> <-- Neuron have this amount of Synapses -->116
<__main__.Neuron object at 0x0000020819FCFBB0> <-- Neuron have this amount of Synapses -->116
<__main__.Neuron object at 0x0000020819FCFBE0> <-- Neuron have this amount of Synapses -->116
<__main__.Neuron object at 0x0000020819FCFC10> <-- Neuron have this amount of Synapses -->116
<__main__.Neuron object at 0x0000020819FCFC40> <-- Neuron have this amount of Synapses -->116
<__main__.Neuron object at 0x0000020819FCFC70> <-- Neuron have this amount of Synapses -->116
<__main__.Neuron object at 0x0000020819FCFCA0> <-- Neuron have this amount of Synapses -->116
<__main__.Neuron object at 0x0000020819FCFCD0> <-- Neuron have this amount of Synapses -->116
<__main__.Neuron object at 0x0000020819FCFD00> <-- Neuron have this amount of Synapses -->116
<__main__.Neuron object at 0x0000020819FCFD30> <-- Neuron have this amount of Synapses -->116
<__main__.Neuron object at 0x0000020819FCFD60> <-- Neuron have this amount of Synapses -->116
<__main__.Neuron object at 0x0000020819FCFD90> <-- Neuron have this amount of Synapses -->116
<__main__.Neuron object at 0x0000020819FCFDC0> <-- Neuron have this amount of Synapses -->116
<__main__.Neuron object at 0x0000020819FCFDF0> <-- Neuron have this amount of Synapses -->116
<__main__.Neuron object at 0x0000020819FCFE20> <-- Neuron have this amount of Synapses -->116
<__main__.Neuron object at 0x0000020819FCFE50> <-- Neuron have this amount of Synapses -->116
<__main__.Neuron object at 0x0000020819FCFE80> <-- Neuron have this amount of Synapses -->116
<__main__.Neuron object at 0x0000020819FCFEB0> <-- Neuron have this amount of Synapses -->116
<__main__.Neuron object at 0x0000020819FCFEE0> <-- Neuron have this amount of Synapses -->116
<__main__.Neuron object at 0x0000020819FCFF10> <-- Neuron have this amount of Synapses -->116
<__main__.Neuron object at 0x0000020819FCFF40> <-- Neuron have this amount of Synapses -->116
<__main__.Neuron object at 0x0000020819FCFF70> <-- Neuron have this amount of Synapses -->116
<__main__.Neuron object at 0x0000020819FCFFA0> <-- Neuron have this amount of Synapses -->116
<__main__.Neuron object at 0x0000020819FCFFD0> <-- Neuron have this amount of Synapses -->116
<__main__.Synapse object at 0x0000020819FE51C0> <-- Synapse have this amount of Neurons -->116
<__main__.Synapse object at 0x0000020819FE51F0> <-- Synapse have this amount of Neurons -->116
<__main__.Synapse object at 0x0000020819FE5220> <-- Synapse have this amount of Neurons -->116
<__main__.Synapse object at 0x0000020819FE5250> <-- Synapse have this amount of Neurons -->116
0<-- Всего операций