我确信我在这里遗漏了一些明显的东西,但是为什么下面的脚本真的有效呢?你知道吗
import enum
import typing
class States(enum.Enum):
a = 1
b = 2
states = typing.NewType('states', States)
def f(x: states) -> states:
return x
print(
f(States.b),
f(3)
)
据我所知,它应该在调用f(3)
时失败,但是它不会。有人能解释一下这种行为吗?你知道吗
Tags:
Python本身不执行任何检查。这在PEP 484的"Non- Goals" section中规定。在执行时(即在运行时),Python完全忽略您提供的注释,并像通常那样动态地计算语句。你知道吗
如果你需要类型检查,你应该自己做。这目前可以由静态类型检查工具(如^{} )执行。你知道吗
相关问题 更多 >
编程相关推荐