Уведомления

Группа в Telegram: @pythonsu

#1 Апрель 15, 2010 16:00:06

goblin_maks
От:
Зарегистрирован: 2008-12-10
Сообщения: 110
Репутация: +  0  -
Профиль   Отправить e-mail  

имя метода из строки

работая с xml-rpc сервером в dict e получаю список его функций, клиентом надо прогнать их все..

но на клиенте каждeую зарезервированую функцию приходится вызывать как метод..

хочу для гибкости сделать чтото подобное..

def sendRequest(self, request, params):
exec('response = self.proxy.' + request + '(' + params + ')')
#response = self.proxy.request(params)
return response
понимаю что через exec это не правильно.. и выглядит криво..
как сделать по нормальному ?



Офлайн

#2 Апрель 15, 2010 16:32:49

meticulos.slacker
От:
Зарегистрирован: 2010-04-15
Сообщения: 10
Репутация: +  0  -
Профиль   Отправить e-mail  

имя метода из строки

response = getattr(self.proxy, request)(params) ?



Офлайн

#3 Апрель 15, 2010 16:36:57

Dimka665
От:
Зарегистрирован: 2008-09-19
Сообщения: 177
Репутация: +  0  -
Профиль   Отправить e-mail  

имя метода из строки

response = eval('self.proxy.%s(%s)' % (request, params))



Отредактировано (Апрель 15, 2010 16:38:00)

Офлайн

#4 Апрель 15, 2010 17:33:53

Андрей Светлов
От:
Зарегистрирован: 2007-05-15
Сообщения: 3137
Репутация: +  14  -
Профиль   Адрес электронной почты  

имя метода из строки

getattr выглядит кошернее. А на __str__ слетят, как минимум, xmlrpc.DateTime и xmlrpc.Binary



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version