如何从自定义外部文件调用函数并且还能够拥有参数?
外部文件是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)
答案 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)