2024-10-03 09:15:58 发布
网友
我总是在数组中找到本地类型和隐藏的类型:
myList = service.fetchRemoteList()[0][1]
其中fetchRemoteList() _returns=Iterable(String)
fetchRemoteList() _returns=Iterable(String)
我不想把[0][1]放在所有list函数调用的末尾。在
Spyne默认使用包装数组,因为这是XML世界中其他人的做法。在
包装数组:
<users> <User> <id>1</id> <name>Batman</name> </User> <User> <id>2</id> <name>Robin</name> </User> </users>
裸阵列:
你也许可以理解为什么现在每个人都更喜欢包装数组了。这是一个惯例问题,但无疑是一个有益的问题。另外,不可能对非包装数组执行多态性。在
Spyne在默认情况下也使用包装函数,因为在裸模式下不可能有多个参数/返回值。在
现在答案是:
这是一个包装好的数组:
Array(Unicode)
下面是等效的裸阵列:
Unicode(max_occurs='unbounded')
在2.12中,您还可以将wrapped=False传递给Array以获得裸数组。 例如:
wrapped=False
Array(Unicode, wrapped=False)
正如您所发现的,您可以获得传递_body_style='bare'的裸函数 到@rpc。
_body_style='bare'
@rpc
一些SOAP客户机通过简单的试探法发现它是什么样的函数/数组,从而避免了使用魔术索引的麻烦。显然肥皂水不是其中之一。在
在讨论数组时,至少需要在网站上记录这一点,或者更现实地说,这需要根据“最小惊奇原则”将其作为默认行为。在
有一个很难找到的小变量,它以下划线开头,可以使用称为“_body_style”,当设置为字符串文字“bare”时,它似乎可以正常工作:
@srpc(_returns=Array(String),_body_style='bare') def fetchRemoteList(): yield "Item1" yield "Item2"
Spyne默认使用包装数组,因为这是XML世界中其他人的做法。在
包装数组:
裸阵列:
^{pr2}$你也许可以理解为什么现在每个人都更喜欢包装数组了。这是一个惯例问题,但无疑是一个有益的问题。另外,不可能对非包装数组执行多态性。在
Spyne在默认情况下也使用包装函数,因为在裸模式下不可能有多个参数/返回值。在
现在答案是:
这是一个包装好的数组:
下面是等效的裸阵列:
在2.12中,您还可以将
wrapped=False
传递给Array以获得裸数组。 例如:正如您所发现的,您可以获得传递
_body_style='bare'
的裸函数 到@rpc
。一些SOAP客户机通过简单的试探法发现它是什么样的函数/数组,从而避免了使用魔术索引的麻烦。显然肥皂水不是其中之一。在
在讨论数组时,至少需要在网站上记录这一点,或者更现实地说,这需要根据“最小惊奇原则”将其作为默认行为。在
有一个很难找到的小变量,它以下划线开头,可以使用称为“_body_style”,当设置为字符串文字“bare”时,它似乎可以正常工作:
相关问题 更多 >
编程相关推荐