'的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