gpt4 book ai didi

python - 传递带有多个参数的字符串

转载 作者:行者123 更新时间:2023-11-28 18:52:18 37 4
gpt4 key购买 nike

我是 python 的新手。我正在使用 python 3.1.2 我必须通过我的代码与 xml-rpc 服务器通信。在我的代码中,我正在调用 client.py,它会依次连接到服务器以从服务器获取评论列表。

工作代码:

class xmlrpc:
def connect(self, webaddr):
self.server = ServerProxy(webaddr)

列出方法:-

my_list = self.server.tests.getTests()

上面的方法是有效的,但是,虽然我限制了将 tests.getTests() 设置为单个 cmd_str ,如下所示

my_list = self.server.cmd_str 

在这种情况下,cmd_str 作为字符串本身发送到 client.py,而不像其他字符串。谁能帮我实现这个目标?

最佳答案

如果我没理解错的话,你想调用一个对象的方法,但是你事先并不知道这个方法,你只是把它放在一个字符串中。对吗?

class Server(object): 
def isRunning(self):
print("you are inside the isRunning")

my_server = Server()
cmd_str = "isRunning"
my_function = my_server.__getattribute__(cmd_str)
my_function()

you are inside the isRunning

请注意,我让 Server 类继承自 object 使其成为所谓的新式类,并且 isRunning 得到一个参数 self,它告诉 python 这应该是一个实例方法。 my_server.__getattribute__ 将获得对绑定(bind)函数 my_server.isRunning 的引用,然后您可以调用该函数。

你也可以这样做:

function_map = {
'check_if_running': my_server.isRunning
}
cmd_str = 'check_if_running'
my_function = function_map[cmd_str]
my_function()

因此您不必完全按照调用命令字符串的方式命名函数(在 Python 中,方法的命名约定通常是 like_this,而不是 likeThis)

关于python - 传递带有多个参数的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10563436/

37 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com