首先,请不要开枪,如果这已经被问到了-我已经四处寻找,但没有结果。
我有一个python文件(名为rpc.py),其中包含许多服务AJAX请求的函数。例如:

def test(self, vars):
    return vars['id']

def test2(self, vars):
    return vars['id']+1

它的URL如下所示:
rpc.py?fnc=test2&id=4

我想调用与'fnc'查询参数匹配的函数,并将整个查询字符串传递到'vars'中。
所以下面的“伪代码”就是我想要的:
vars = cgi.FieldStorage()
print "Content-Type: text/html\n\n"
print eval('vars["fnc"].value(vars)')

有什么想法吗?

最佳答案

你可以用

getattr(server, vars["fnc"])(vars)

但我也建议在服务名称中添加前缀(例如“do_test”),以避免恶意代码通过传递名称(包括您认为不应该调用的名称)来调用服务器对象的任何方法。在这种情况下
getattr(server, "do_" + vars["fnc"])(vars)

关于python - python变量函数定义,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4904073/

10-12 20:46