[Tutor] getattr()

Pete pkoek11 at xs4all.nl
Wed Aug 4 19:23:13 CEST 2010


I'm trying to understand the syntax for reflection in python. I was wondering about this.

From the example on diveintopython:


import statsout

def output(data, format="text"):
    output_function = getattr(statsout, "output_%s" % format, statsout.output_text)
    return output_function(data) 

I was wondering about how to make this work if the function that you are trying to call is not in a module. Is that possible?

Something like this:

def output_text(data):
    return_value = "This is text: " + data
    return return_value

def output(data, format="text"):
    output_function = getattr(*****, "output_%s" % format, statsout.output_text)
    return output_function(data)

What I can't figure out is what to put in place of *****. I've tried globals()['__name__'], in various forms, to no avail.

Any pointers would be appreciated.



-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/tutor/attachments/20100804/7f358f1c/attachment.html>

More information about the Tutor mailing list