OdarR wrote:
On 8 fév, 11:57, Klaus Neuner <klausneune...@googlemail.com> wrote:
Hello,

I am writing a program that analyzes files of different formats. I
would like to use a function for each format. Obviously, functions can
be mapped to file formats. E.g. like this:

if file.endswith('xyz'):
    xyz(file)
elif file.endswith('abc'):
    abc(file)

...

Yet, I would prefer to do something of the following kind:

func = file[-3:]
apply_func(func, file)

Can something of this kind be done in Python?

I may have missed a bit of this thread -- so I have to ask: Has anyone mentioned using getattr yet? It's a way of looking up *any* attribute using a string to specify the name. Like this for your particular example:

class Functions:  # This could be a module instead of a class
 def xyz(...):
     ...
 def abc(...):
     ...
 ... and so on ...


ext = os.path.splitext(file) # Parses out the extension
fn = getattr(Functions, ext) # Lookup the correct function
fn(...) # and call it

Gary Herron


--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to