小编liz*_*liz的帖子

意外的元组拆包,可能的范围问题/混乱

我正在使用python 3.6.

我对第09行和第10行的解包感到困惑.我期望dy_outer在09行等于(0,-1)并dy_inner在09行等于(side-1,0).类似地,我期望dx_outer并且dx_inner在第10行分别等于(0,-1)和(side-1,0).

但是,当set_trace关闭时,我发现第09行dy_outerdy_inner第9行的值分别等于0和-1.和上也是如此dx_outer,并dx_inner从第10行; 它们分别等于0和-1.

offsets 是一个元组的元组,所以当你迭代它时,它应该解包每个元组,而不是第一个元组中的每个元素.

我对Python范围的直觉是不正确的?

01 def cover(board, lab = 1, top = 0, left =0, side = None):
02    if side is None:
03        side = len(board)
04    
05    s = side // 2
06    
07    offsets = (0, -1), (side-1, 0)
08    
09    for dy_outer, dy_inner in offsets:
10        for dx_outer, dx_inner in offsets:
11            set_trace()
12            if not …
Run Code Online (Sandbox Code Playgroud)

scope python-3.x iterable-unpacking

4
推荐指数
1
解决办法
269
查看次数

标签 统计

iterable-unpacking ×1

python-3.x ×1

scope ×1