使用XMLRPC在Python中动态调用函数

1 投票
1 回答
2082 浏览
提问于 2025-04-15 11:47

我正在写一个类,打算用它来创建子程序,构造函数如下:

def __init__(self,menuText,RPC_params,RPC_call):
   #Treat the params
   #Call the given RPC_call with the treated params

问题是我想用这种格式来调用函数:rpc.serve.(函数名)(参数),其中rpc是我用来调用XMLRPC函数的serverProxy对象,而serve.-函数名-是我在XMLRPC服务器上调用的方法。

我查过一个链接,讲的是如何通过字符串调用函数,具体是关于Python的。但是因为我的serverProxy对象不知道它有哪些“远程属性”,所以我不能用getattr()函数来获取这个方法。

我看到过一个例子是通过创建一个字典来调用特定的函数,但有没有办法让这个函数调用真正动态,就像创建一个字符串一样?就像把字符串当作函数来运行?

1 个回答

2

你可以使用 getattr 来从服务器代理中获取函数名,所以像这样调用这个函数是可以的:

getattr(rpc, function_name)(*params)

撰写回答