'的mypy pop错误;无';对象是不可编辑的

'的mypy pop错误;无';对象是不可编辑的,mypy,Mypy,这里我有一个这样的函数: def func_A(delta: Optional[List[int]], margin: Optional[List[int]] mode: str = 'OUT') -> Tuple[int, Optional[List[int]], Optional[Lis

这里我有一个这样的函数:

def func_A(delta: Optional[List[int]],
           margin: Optional[List[int]]
           mode: str = 'OUT') -> Tuple[int, 
                                       Optional[List[int]],
                                       Optional[List[int]]]:

    result = 1

    if mode == "OUT":
        return result, [1,2,3], [4,5,6]

    elif mode == "IN":
        delta_x, delta_y = delta
        margin_x, margin_y = margin
        return result, None, None

    else:
        raise ValueError('wrong key')
但是,当我使用如下函数时,mypy将弹出错误:

result, delta_options, margin_options = func_A(delta=None,
                                               margin=None,
                                               mode="OUT")
给出错误: “None”对象不可编辑

我的代码哪部分错了?提前谢谢

另外,我的mypy配置如下:

mypy --ignore-missing-imports --follow-imports=skip --strict-optional .
问题是L.10

delta_x, delta_y = delta
增量的类型为
可选[List[int]]
。所以delta可以是
None
。如果delta为None,则代码不起作用

delta_x, delta_y = None
因此,您需要在代码之前处理delta是None

e、 g

等等

if delta is not None:
    delta_x, delta_y = delta
delta_x, delta_y = delta if delta is not None else None, None