由于 python 是一种动态类型语言,我希望它可以隐藏变量类型提示。
是否可以在某个时刻更新变量的类型提示?
在下面的示例中,我期望
classes
的类型变为 list[tuple[int, str]] | None
,因为我更改了 if
循环中的值。
我知道我可以为列表创建一个新变量,但我更喜欢用新值来隐藏字典,因为它不再是必要的。
那么,是否可以在不引入新变量的情况下做到这一点?
def foo(classes: Optional[dict[int, str]] = None):
if classes is not None:
classes = list(classes.items()) # `classes` type is not updated
classes.sort(key=lambda x: x[0])
a = classes # expecting list[tuple[int, str]] | None, got dict[int, str] | None
> mypy .\foo.py
foo.py:6: error: Incompatible types in assignment (expression has type "List[Tuple[int, str]]", variable has type "Optional[Dict[int, str]]")
foo.py:7: error: "Dict[int, str]" has no attribute "sort"
Found 2 errors in 1 file (checked 1 source file)