Does python have an internal data structure with functions importedfrom a module?

  • Thread starter Carl J. Van Arsdall
  • Start date
C

Carl J. Van Arsdall

Alright, I attempted to post this question yesterday but I don't see it
as showing up, so I apologize in advance if this is a double post.

Python Gurus:

Let me elaborate a bit more on this question. Basically, I want to know
if there is some data structure in python that maps a string function
name to an address of a function or something to that nature.

If this is confusing, let me describe what I want to do and see if
anyone has any ideas.

basically we have:
.... pass
<function functA at 80db128>

And what I'd like to do is:
>>>__internalFuncDict__['functA']
<function functA at 80db128>

This is just for a little experimental project of mine, any help or
pointers to the proper pages in the manual would be greatly
appreciated. Basically, I know that I can create something like this if
I have to but I was very much hoping that something already existed
somewhere that I could get to via python or by writing a C extension.

Thanks in advance!

-carl

--

Carl J. Van Arsdall
(e-mail address removed)
Build and Release
MontaVista Software
 
G

Georg Brandl

Carl said:
Alright, I attempted to post this question yesterday but I don't see it
as showing up, so I apologize in advance if this is a double post.

Python Gurus:

Let me elaborate a bit more on this question. Basically, I want to know
if there is some data structure in python that maps a string function
name to an address of a function or something to that nature.

If this is confusing, let me describe what I want to do and see if
anyone has any ideas.

basically we have:
... pass
<function functA at 80db128>

And what I'd like to do is:
__internalFuncDict__['functA']
<function functA at 80db128>

Read about globals(), dir() and module.__dict__.

Georg
 
L

Larry Bates

Carl said:
Alright, I attempted to post this question yesterday but I don't see it
as showing up, so I apologize in advance if this is a double post.

Python Gurus:

Let me elaborate a bit more on this question. Basically, I want to know
if there is some data structure in python that maps a string function
name to an address of a function or something to that nature.

If this is confusing, let me describe what I want to do and see if
anyone has any ideas.

basically we have:
... pass
<function functA at 80db128>

And what I'd like to do is:
__internalFuncDict__['functA']
<function functA at 80db128>

This is just for a little experimental project of mine, any help or
pointers to the proper pages in the manual would be greatly
appreciated. Basically, I know that I can create something like this if
I have to but I was very much hoping that something already existed
somewhere that I could get to via python or by writing a C extension.

Thanks in advance!

-carl
I would do this as follows:

Create dictionary with the function names as keys and the pointer to
function definition as value:

def printFoo():
print "Foo"
return

def printFOO():
print "FOO"
return

fdict={'printFoo': printFoo, 'printFOO': printFOO}
functions=('printFoo', 'printFOO')
for function in function:
if fdict.has_key(function: fdict[function]()
else:
print "No function named=%s defined" % function

-Larry Bates
 
L

Larry Bates

Carl said:
Alright, I attempted to post this question yesterday but I don't see it
as showing up, so I apologize in advance if this is a double post.

Python Gurus:

Let me elaborate a bit more on this question. Basically, I want to know
if there is some data structure in python that maps a string function
name to an address of a function or something to that nature.

If this is confusing, let me describe what I want to do and see if
anyone has any ideas.

basically we have:
... pass
<function functA at 80db128>

And what I'd like to do is:
__internalFuncDict__['functA']
<function functA at 80db128>

This is just for a little experimental project of mine, any help or
pointers to the proper pages in the manual would be greatly
appreciated. Basically, I know that I can create something like this if
I have to but I was very much hoping that something already existed
somewhere that I could get to via python or by writing a C extension.

Thanks in advance!

-carl
I would do this as follows:

Create dictionary with the function names as keys and the pointer to
function definition as value:

def printFoo():
print "Foo"
return

def printFOO():
print "FOO"
return

fdict={'printFoo': printFoo, 'printFOO': printFOO}
functions=('printFoo', 'printFOO')
for function in function:
if fdict.has_key(function: fdict[function]()
else:
print "No function named=%s defined" % function

-Larry Bates
 
?

=?ISO-8859-1?Q?Sch=FCle_Daniel?=

in case you are trying it in the python shell
>>> def foo():return "test" ....
>>> import __main__
>>> __main__.__dict__["foo"]
>>> __main__.__dict__["foo"]() 'test'
>>>

otherwise build your own dict with string->function mapping

op = {
"plus" : lambda x,y:x+y,
"minus" : lambda x,y:x-y,
"power" : lambda x,y:x**y,
}

op["power"](2,8)

hth, Daniel
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,769
Messages
2,569,580
Members
45,055
Latest member
SlimSparkKetoACVReview

Latest Threads

Top