强类型python3.7-返回类型和参数不会失败

时间:2018-11-05 09:37:09

标签: python-3.7

我不太明白为什么这不会失败:

def hello(name: str) -> int:
    ending:int = '!!!'
    return f'Hello {name} {ending}'

print(hello('John')) # Hello John !!!

如果已经有可能使用强类型的python?

2 个答案:

答案 0 :(得分:2)

Guido自己在PEP 484中解释了原因:

  

还应该强调的是, Python仍将是一种动态类型化的语言,并且即使是按照惯例,作者也不希望使类型提示成为强制性的

所以答案是否定的。类型提示仅是提示。它们有助于指示变量/函数应该/可能应包含/返回/等的数据类型。并非旨在将Python转换为静态类型的语言。

答案 1 :(得分:0)

正如我在评论中写道,很高兴在项目/代码运行之前使用mypy myproject.py来运行它。然后,您可以验证数据类型的结构和正确的流程。