我不太明白为什么这不会失败:
def hello(name: str) -> int:
ending:int = '!!!'
return f'Hello {name} {ending}'
print(hello('John')) # Hello John !!!
如果已经有可能使用强类型的python?
答案 0 :(得分:2)
Guido自己在PEP 484中解释了原因:
还应该强调的是, Python仍将是一种动态类型化的语言,并且即使是按照惯例,作者也不希望使类型提示成为强制性的。
所以答案是否定的。类型提示仅是提示。它们有助于指示变量/函数应该/可能应包含/返回/等的数据类型。并非旨在将Python转换为静态类型的语言。
答案 1 :(得分:0)
正如我在评论中写道,很高兴在项目/代码运行之前使用mypy myproject.py
来运行它。然后,您可以验证数据类型的结构和正确的流程。