当我在python3方法中使用mypy时,它不会打印任何内容。我使用下面的代码,它没有错误。
def p(st : str) -> bool:
print('hello')
return True
p("hello")
print(10)
但它不打印“你好”或“10”。有什么问题?
答案 0 :(得分:1)
如果你有一些Python代码,你是否决定使用mypy检查它是完全可选的。如果您关心对代码进行类型检查,则可以运行mypy并获取代码中包含的任何错误的报告(如果有)。如果您不关心对代码进行类型检查,则可以忽略该工具(因为您不需要该报告)。
请注意,所有mypy
都会为您提供报告。这就是为什么做mypy test.py
什么也不做 - 它正在生成一个报告,而不是实际运行任何代码。
目前,您的代码没有类型错误,因此mypy实际上根本不打印任何内容 - 报告为空。您可以通过尝试故意在代码中引入错误来查看mypy将为您提供的各种报告的示例。例如,尝试修改函数,使其返回字符串而不是bool。这与您的类型签名相矛盾,因此mypy会将其标记为错误并将其包含在生成的报告中。
要实际运行代码,您需要使用Python解释器。在这里,您似乎正在编写Python 3代码,因此您需要首先安装并使用Python 3解释器。完成后,如果您使用的是Mac或Linux,或者如果您使用的是Windows python3 test.py
,则可以通过py -3 test.py
在命令行上运行代码。
请注意,Python 3解释器在运行时会完全忽略您的类型注释。注释是有效的Python语法,但Python解释器本身基本上忽略了它们。注释纯粹是为了让您将元数据附加到代码的某些部分,然后第三方库和工具可以分析和使用。