Use a PythonObject. For symmetry with NEURON's Python interface, I often call it p.
For example:
oc>objref p
oc>p = new PythonObject()
oc>a = p.max(12, 24.1)
first instance of a
oc>print a
24.1
In your case you'll probably be importing a module, so it'd be more like:
nrnpython("import mymodule")
objref vec
vec = p.mymodule.read_nrn_vec("filename")
________________________________________
From: Tom Morse [tom.morse@yale.edu]
Sent: Tuesday, April 28, 2015 2:26 PM
To: McDougal, Robert
Subject: calling a python function from hoc
If I have a python function for example
from neuron import h, gui
def read_vec(filename):
vector_list=[]
for line in open(filename,'r'):
vector_list.append(eval(line))
return vector_list
def read_nrn_vec(filename):
return h.Vector(read_vec(filename))
That returns the numbers in a filename as list, is it possible to call
that from hoc code:
objref vec
vec = pythons_read_nrn_vec("filename.dat")
What would pythons_read_nrn_vec really be if it is possible?
|