2
我想了解爲什麼我必須存儲Python函數的輸出(不管我使用的變量的名稱是什麼,而不管我是否隨後使用該變量)。我認爲這對Python更通用,而不是專門用於軟件NEURON,因此我將它放在Stackoverflow上。儘管沒有使用輸出,仍然需要Python函數存儲輸出
關注的線是在這裏:
clamp_output = attach_current_clamp(cell)
如果我只是寫attach_current_clamp(cell)
,沒有函數的輸出存儲到一個變量,代碼不起作用(情節是空的),但我不要根本不使用clamp_output
。 爲什麼我不能只是調用函數?爲什麼我必須使用變量來存儲輸出,即使不使用輸出?
import sys
import numpy
sys.path.append('/Applications/NEURON-7.4/nrn/lib/python')
from neuron import h, gui
from matplotlib import pyplot
#SET UP CELL
class SingleCell(object):
def __init__(self):
self.soma = h.Section(name='soma', cell=self)
self.soma.L = self.soma.diam = 12.6517
self.all = h.SectionList()
self.all.wholetree(sec=self.soma)
self.soma.insert('pas')
self.soma.e_pas = -65
for sec in self.all:
sec.cm = 20
#CURRENT CLAMP
def attach_current_clamp(cell):
stim = h.IClamp(cell.soma(1))
stim.delay = 100
stim.dur = 300
stim.amp = 0.2
return stim
cell = SingleCell()
#IF I CALL THIS FUNCTION WITHOUT STORING THE OUTPUT, THEN IT DOES NOT WORK
clamp_output = attach_current_clamp(cell)
#RECORD AND PLOT
soma_v_vec = h.Vector()
t_vec = h.Vector()
soma_v_vec.record(cell.soma(0.5)._ref_v)
t_vec.record(h._ref_t)
h.tstop = 800
h.run()
pyplot.figure(figsize=(8,4))
soma_plot = pyplot.plot(t_vec,soma_v_vec)
pyplot.show()
你能夠使外部的可重複的例子神經元?或者它似乎是神經元特有的? – CodeGuy
不知道我是否理解。該問題特定於實現NEURON HOC和Python之間接口的Python包「神經元」。你不需要在普通的Python中保存引用(即在神經元之外)。 – Justas
謝謝。那是我的問題。 – CodeGuy