1

次のように、サブルーチン、コンストラクターを作成するために使用するクラスを作成しています。

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

問題は、パターン「 rpc.serve.(function name here)(params) 」で関数を呼び出したいことです。ここで、 rpc は XMLRPC 関数を呼び出すために使用している serverProxy オブジェクトであり、 serve.-function name - XMLRPC サーバーで呼び出しているメソッドです。

Calling a function from a string with the function's name in Pythonを見てきましたが、serverProxy オブジェクトがどの「リモート属性」を持っているかを認識していないため、getattr() 関数を使用してメソッドを取得できません。

特定の関数を呼び出す辞書を作成する例を見てきましたが、文字列を作成するように関数呼び出しを作成して、関数を真に動的にする方法はありませんか? String を関数として実行するのが好きですか?

4

1 に答える 1

2

を使用してサーバー プロキシから関数名を取得できるgetattrため、次のように関数を呼び出すと機能します。

getattr(rpc, function_name)(*params)
于 2009-05-23T11:53:56.240 に答える