从包含参数

时间:2015-06-17 15:07:10

标签: python xml xml-parsing

如何从自定义外部文件调用函数并且还能够拥有参数?

外部文件是XML文件。标签看起来像这样:

<menu name="bar">
        <option func="boo">Execute Me</option>
        <option func="foo" params="a, b, c, d">I want parameters</option>        
</menu>

我想执行func属性中定义的函数。我已经构建了解析所有内容的代码,我只需要调用它。问题是我需要从将在另一个文件中导入的类中调用它。 像这样:

 class xmlParser:
   def __init__(self, filepath, funcname, *params):
      # code to parse data etc.      
        exec_func_from_file(funcname, params)


   def exec_func_from_file(self, *args):
        # code to call function.
        ...
        ...
        funcname(params)

接下来我想要一个类/模块来保存所有要执行的函数

class functions:
   def __init__(self):
       pass

   def boo(self):
       print "Well done"

   def foo(self, a, b, c, d):
     print 'Executed'

然后它会是另一个使用这样的类。

 import xmlParser
 import functions

 filepath = 'files/test.xml' 

 if var1 == var2: 
   params = 'stored from somewhere' 
   xmlParser(filepath, 'foo', *params)
 else:
   xmlParser(filepath, 'boo', *params)

1 个答案:

答案 0 :(得分:0)

class xmlParser:
   def __init__(self, filepath, funcname, *args):
        # code to parse data etc.
        exec_func_from_file(funcname, args)

   def exec_func_from_file(self, funcname, *args):
        # code to call function.
        ...
        ...
        functionsobj = functions() # do you really need a class for this?
        funcobj = getattr(functionsobj, funcname)
        funcname(*args)