That was the information I was missing many thanks. For the reference sake, a look through the source code indicates this solution; prior to your message I just didn't understand it that well.
-- /jpc On Sun, 2011-10-09 at 11:00 -0700, Chris Rebert wrote: > On Sun, Oct 9, 2011 at 6:30 AM, John P. Crackett > <j...@parallelthoughts.org> wrote: > > I need to write prototype XMLRPC clients using xmlrpclib for a server > > that has variable RPC names and I'd like to use Python as the > > prototyping tool. I've searched but can't find any relevant advice > > online. Any pointers would be gratefully received; details follow. > > > > The server in question constructs method names dynamically using the > > names of objects created by the client. > <snip> > > As an added complication, object names need to be concatenated using "-" > > as a separator to form compound RPC names. Following on from the > > example above, this could lead to: > > > > api = xmlrpclib.ServerProxy(serverURL) > > > > api. createObjects("foo", "far") > > > > api.foo-bar.callOne() > > > > Where I don't know, again, what "foo" and "bar" will actually be in > > advance. "foo-bar" is obviously not a valid Python method name and this > > is preventing me from hard-coding just to get a prototype going. > > Try using getattr(): > getattr(api, "foo-bar").callOne() > > For reference, getattr() satisfies the following identity: > x.y === getattr(x, "y") > except that getattr() does not itself enforce/require that its second > argument be a valid Python identifier. > > Cheers, > Chris > -- > http://rebertia.com -- http://mail.python.org/mailman/listinfo/python-list