2010-12-21 5 views
2

In Python, XML-RPC Methoden Aufruf auf einem Proxy-Objekt aufrufen Methoden beinhalten:Können XML-RPC-Methoden in Python namentlich (als Strings) aufgerufen werden?

from xmlrpclib import ServerProxy 
print ServerProxy('https://example.com/rpc').api.hello_there('John') 

In einigen anderen Sprachen wie Perl, übergeben Sie Ihre Methodennamen als Methodenparameter.

use Frontier::Client; 
$p = Frontier::Client->new(url => 'https://example.com/rpc'); 
$result = $p->call('api.hello_there', 'John'); 
print $result; 

Gibt es eine Möglichkeit, XML-RPC-Methoden über Namen als Strings in Python aufzurufen?

Antwort

2

Verwenden Sie einfach getattr, wie mit jedem Python-Objekt.

func = getattr(ServerProxy('https://example.com/rpc'), "api.hello_there") 
print func('John') 
+0

Sie können getattr nicht mit Punktnamen verwenden; Ich denke du brauchst getattr (getattr (..., 'api'), 'hallo_there'). –

+0

@Nicholas: Nein, das funktioniert. Ich habe es speziell getestet. –

+0

Vielleicht funktioniert es in diesem speziellen Fall; Es funktioniert im Allgemeinen nicht mit Python-Objekten (der "wie bei jedem Python-Objekt" Teil Ihrer Antwort). –

Verwandte Themen