Я программирую на python и мне нужно получить доступ к имени, которое я дал объекту, чтобы иметь возможность передавать его как строку (объединенную с другой строкой).
Причина, по которой мне нужно это сделать, заключается в том, что программа, которую я использую, вынуждает меня создать глобал (который в моем случае является словарем), и я пишу функцию для работы в целом с несколькими различными объектами (каждый из которых имеет аналогичные наборы свойств, например, объект 1 имеет длину 2 (что в моем случае означает 2 нейрона) с метками 0 и 1, и у каждого из них есть 4 свойства a, b, c, d. Я хочу создать «словарь filetree» из эти свойства, но как object1, так и object 2, являются двумя экземплярами одного и того же класса, поэтому мне нужно изменить ключи первого уровня на «NAME1_0,« NAME1_1 »,« NAME2_0 »,« NAME2_1 »).
def Init(neuron,input):
#Initialises the neuron group, arguements are neuron (neurongroup) and input (neurongroup)
global dict
dict={}
for x in range(0,len(neuron)):
neuron[x].L=0
neuron[x].G=0
neuron[x].ron=1/period
neuron[x].roff=1/period
dict[x]={'tau_on':0.5,
'Non_off':neuron[x].roff*0.5,
'Non_off':neuron[x].ron*0.5,
'Ni_on':ones(len(input))*qon*0.5,
'Ni':ones(len(input))*qoff*0.5+ones(len(input))*qon*0.5,
'p_current':0,
'p_previous':0,
'my_tau_on':[],
'my_Non_off':[],
'my_Noff_on':[],
'my_Ni_on':[],
'my_Ni':[],
'my_p_on':[],
'my_ron':[],
'my_roff':[],
'my_theta':[],
'my_weights':[],
'my_record_times':[]}
dict['%s' % x, neuron]=dict.pop(x)
не работает, так как не дает имя, присвоенное объекту, а просто имя самого объекта. для более минимального случая моей проблемы
NAME1=4
def func(x): #creates string of 'NAME1'
print 'x'
func(NAME1)
#output='NAME1'