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

Larry Bates larry.bates at websafe.com
Fri Feb 17 17:46:34 EST 2006


Carl J. Van Arsdall wrote:
> 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:
> 
>>>>def functA():
> ...  pass
> 
>>>> functA
> <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




More information about the Python-list mailing list