Типизация параметров метода XML-RPC в Python - PullRequest
2 голосов
/ 18 декабря 2009

Я создал интерфейс XML-RPC в Python, и мне нужно ввести более строгую типизацию. Например, передавая строку «10» вместо int 10. Я могу очистить это с помощью некоторого приведения типов и небольшой обработки исключений, но мне интересно, есть ли какой-либо другой способ заставить целостность типов, такой как что-то специфичное для XML-RPC декоратор или что-то еще.

Ответы [ 3 ]

1 голос
/ 18 декабря 2009

В любом случае оно всегда будет преобразовано в строку, так почему вас волнует, что передается? Если вы используете "%s" % number или даже просто str(number), тогда не имеет значения, является ли number строкой или целым числом.

0 голосов
/ 18 декабря 2009

Я всегда просто использую функцию re.escape, напр .::1001*

number = re.escape(number)

Таким образом, вещи всегда преобразуются в строки

0 голосов
/ 18 декабря 2009

Методы XML-RPC (по крайней мере, в xmlrpclib) отправляются функциям или методам Python, поэтому в них необходимо включить проверку типов. Существует множество рецептов выполнения этой задачи с помощью декораторов: Тип Enforcement (принимает / возвращает) , Модуль проверки типов .

Обратите внимание, что xmlrpclib не хватает правильной обработки ошибок, поэтому вы, вероятно, хотели бы реализовать свой собственный .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...