窗户7,Python2.7 MPD2。在
我正在写一个程序来控制MPD。在
MPD有几个(超过50个)不同的功能。在
通常情况下,打电话的形式是:
mpd_client.pause()
#or
mpd_client.playlistmove(playlist_name, old_pos, new_pos)
我想把所有单独的调用封装在一个函数中,这样就可以使用一个try/except。在
我想我想用一些lambda,和*args,但是我对这两种都没有什么经验。在
在我的程序主体中,我想称之为:
^{pr2}$我设想我的功能看起来像。。。在
def MPD(required_param, *args):
try:
mpd_client.required_param(args)
except:
...
当然,这是行不通的。在
除了编写一个巨大的switch语句和50个不同的try结构之外,有没有方法可以使用lambda?在
可能是这样的:
lambda m=mpd_client.required_param: m(args)
但是,这也不管用。在
我不知道。在
谢谢,马克。在
您需要使用
getattr()
检索按名称调用的实际方法:(请注意,您还需要在函数调用的
args
前面加上*
,以便将参数列表重新展开为单独的参数。)你需要的是对象。在你的代码中:
相关问题 更多 >
编程相关推荐