2009-05-23 9 views
1

を使用してPythonで呼び出しますrpc.serve。(ここでは関数名)(のparams)」、 RPCは、私がXMLRPC関数を呼び出すために使用していServerProxyはオブジェクトであり、かつserve.機能名 - は、私がXMLRPCで呼んでいる方法であり、 -サーバ。ダイナミック機能は、次のように私は、私は、コンストラクタをサブルーチンを作成するために使用するクラスを書いているXMLRPC

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

私は与えられた関数を呼び出すために辞書を作ることによって例を見てきましたが、あなたは文字列を作成して関数呼び出しを作成することで機能を真に動的にする方法はありませんか? 文字列を関数として実行するのと同じですか?

+0

をあなたはこのパターンをしたいのはなぜ?なぜrpc.functionName(params)? –

+0

「サーブ」をなぜ追加したのかというと、サーバ上の機能の論理的なグループ化だけであり、機能はありません。 – Duveit

答えて

2

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

getattr(rpc, function_name)(*params) 
+0

あなたは正しいです! Didnt know。しかし、getattr()を使わずにメソッドとして与えられたStringを実行できるかどうかを知りたいと思っています。私がgetattr()メソッドを使用していることは明らかです。 – Duveit

+0

あなたはevalやexecで "文字列を実行する"ことができましたが、それは非常に徹底的に削除されていて、何か利点がありません。 –

関連する問題