【发布时间】:2020-09-15 00:14:41
【问题描述】:
在下面的例子中,为什么当变量foo的值设置为整数时,它的类型会发生变化,而bar["foo"]的类型却没有变化?
import typing as tp
foo: tp.Union[float, int]
D = tp.TypedDict("D", {"foo": tp.Union[float, int]})
foo = 123.45
bar = D(foo=123.45)
reveal_type(foo) # main.py:9: note: Revealed type is 'builtins.float'
reveal_type(bar["foo"]) # main.py:10: note: Revealed type is 'builtins.float'
foo = int(foo)
bar["foo"] = int(bar["foo"])
reveal_type(foo) # main.py:15: note: Revealed type is 'builtins.int'
reveal_type(bar["foo"]) # main.py:16: note: Revealed type is 'builtins.float'
【问题讨论】:
标签: python mypy python-typing