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

发布于 2024-07-20 08:10:31 字数 664 浏览 3 评论 0原文

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

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

问题是我想在模式“rpc.serve.(此处为函数名称)(params)”, 其中 rpc 是我用来调用 XMLRPC 函数的 serverProxy 对象,而serve.-function name- 是我在 XMLRPC 服务器上调用的方法。

我看过 调用函数来自 Python 中带有函数名称的字符串,但是看到我的 serverProxy 对象如何不知道它具有哪些“远程属性”,我无法使用 getattr() 函数来检索该方法。

我见过一个通过创建字典来调用给定函数的示例,但是没有办法通过像创建字符串一样创建函数调用来使该函数真正动态化吗? 就像将字符串作为函数运行一样?

I'm writing a class which I intend to use to create subroutines, constructor as following:

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

The problem is that I want to call the function on the pattern "rpc.serve.(function name here)(params)",
where rpc is a serverProxy object that I'm using to call XMLRPC functions, and serve.-function name- is the method I'm calling on the XMLRPC-server.

I've looked at Calling a function from a string with the function's name in Python, but seeing how my serverProxy object doesnt know which "remote attributes" it have, I cant use the getattr() function to retrieve the method.

I've seen a example by making a dictionary to call a given function, but is there no way to make the function truly dynamic by creating the function call as you would create a String?
Like running a String as a function?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

温柔一刀 2024-07-27 08:10:31

可以使用getattr从服务器代理获取函数名称,因此像这样调用该函数是可行的:

getattr(rpc, function_name)(*params)

You can use getattr to get the function name from the server proxy, so calling the function like this will work:

getattr(rpc, function_name)(*params)
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文