我在Python中构建了一个XML-RPC接口,我需要强制执行一些更严格的输入。例如,传递字符串'10'而不是int 10.我可以通过一些类型转换和一些异常处理来清理它,但我想知道是否有任何其他强制类型完整性的方法,例如特定于XML-RPC的东西,装饰者,或其他东西。
答案 0 :(得分:1)
无论如何它总会被转换为字符串,所以你为什么要关心传入的是什么?如果您使用"%s" % number
甚至只使用str(number)
,那么number
是字符串还是int都无关紧要。
答案 1 :(得分:0)
XML-RPC方法(至少在xmlrpclib
中)被分派到Python函数或方法,因此您必须在其中强制执行类型检查。使用装饰器执行此任务有很多方法:Type Enforcement (accepts/returns),typecheck module。
请注意,xmlrpclib
缺少正确的错误处理,因此您可能希望implement your own。
答案 2 :(得分:0)
我总是只使用re.escape函数,例如:
number = re.escape(number)
这样事情总会被转换为字符串