一个真正的,如果愚蠢的问题:
https://github.com/joshmarshall/tornadorpc/blob/master/tornadorpc/base.py
def start_server(handlers, ...):
...
for (route, handler) in handlers:
...
通常“handlers”是2元素元组的列表。但是使用这种特殊的解决方案(Tornado),您可以将第三个参数传递给特定的处理程序(kw args)。所以“handlers”中的元组有时可能有2个元素,其他时候可能有3个元素。在
我需要把这个打包成一个循环。当然,我可以做smth之类的长度检查,也可以试试……除了拆包。啊。在
你认为smth比这个更好/更聪明吗:
^{pr2}$是吗?在
由于Python 3,您可以使用PEP 3132扩展解包:
如果这不是一个选择,请与中间人解包:
^{pr2}$如果该处理程序采用关键字参数,则对第三个元素使用字典:
或者可以使用
^{pr2}$*args
语法应用参数;在这种情况下,只需捕获循环中的所有值:如果需要将解压为至少2个参数,请在单独的步骤中执行此操作:
其中
args
将是0个或更多元素的元组。在在Python3中,可以使用splat(
*
)目标处理任意宽度的解包:其中
*args
捕获解包中的0个或多个额外值。在另一个路径,到
handlers
中的元素到最小长度,可以通过以下方式完成:演示:
相关问题 更多 >
编程相关推荐