Windows7、Python2.7 MPD2。Pythonは間接的に関数を呼び出します
私はMPDを制御するプログラムを書いています。
MPDには、複数の(50以上の)異なる機能があります。
通常1フォームで電話をかけるでしょう。
mpd_client.pause()
#or
mpd_client.playlistmove(playlist_name, old_pos, new_pos)
私は除き/単一のtryを使用できるように、一つの関数内のすべての個別の呼び出しをカプセル化します。
私はある種のラムダと* argsを使いたいと思っていますが、私はどちらかの経験がほとんどありません。
もちろんのdef MPD(required_param, *args):
try:
mpd_client.required_param(args)
except:
...
、これではありません...
MPD('pause')
#or
MPD('playlistmove', playlist_name, old_pos, new_pos)
は、私のようなものを見て、私の機能を想像:私のプログラムの本体で
は、私はこのような何かを呼びたいですワーキング。巨大なswitch文と50個の異なるtry構造を書くのは簡単ですが、ラムダを使う方法はありますか?
多分何か:
lambda m=mpd_client.required_param: m(args)
しかし、これはどちらか動作していません。
わかりません。
ありがとうございました。あなたが名前で呼び出すために実際のメソッドを取得するためにgetattr()
を使用する必要が
ありがとうアンバー、これは私が必要としていたものです。 –