<p><strong>编辑2016-11-11:</strong>只需使用<a href="http://www.mypy-lang.org/" rel="nofollow noreferrer">mypy</a>。类型提示可以逐渐添加。在Python 3源代码中,它验证标准的<a href="https://www.python.org/dev/peps/pep-0484/" rel="nofollow noreferrer">PEP 484</a>类型提示。类型仍然可以使用特殊注释在Python 2中表示。<a href="https://mail.python.org/pipermail/python-ideas/2014-August/028618.html" rel="nofollow noreferrer">Guido likes it</a>。</p>
<p>这篇文章最早是在mypy成为一个东西之前写的。我保留了这篇文章下面的原始内容,尽管它不太准确。</p>
<hr/>
<p><strong>原帖:</strong></p>
<p>您可能想查看本<a href="https://stackoverflow.com/questions/35470/are-there-any-static-analysis-tools-for-python">related StackOverflow post on static analysis for Python</a>中提到的一些项目。</p>
<p>总而言之:</p>
<ul>
<li><a href="http://www.logilab.org/project/pylint" rel="nofollow noreferrer">pylint</a></li>
<li><a href="http://pypi.python.org/pypi/pyflakes" rel="nofollow noreferrer">PyFlakes</a></li>
<li><a href="http://pychecker.sourceforge.net/" rel="nofollow noreferrer">PyChecker</a></li>
</ul>
<p>由于Python广泛地使用<a href="http://en.wikipedia.org/wiki/Duck_typing" rel="nofollow noreferrer">duck typing</a>,在其他语言中可能被称为“类型错误”的东西最终可能是“object<em>X</em>在Python中不支持method<em>Y</em>”。</p>
<p><strong>编辑2011-05-17:</strong></p>
<p>我同意delnan的观点,即Python不可能使用静态类型。但既然我们的怀疑似乎并没有吓倒你,我只能给你更多关于这个问题的信息。我出席:</p>
<ul>
<li>关于<a href="http://lambda-the-ultimate.org/node/1519" rel="nofollow noreferrer">type inference for Python</a>的讨论。(其他链接来自此处。)</li>
<li>Guido van Rossum关于添加可选静态类型的文章:<a href="http://www.artima.com/weblogs/viewpost.jsp?thread=85551" rel="nofollow noreferrer">part 1</a>和<a href="http://www.artima.com/weblogs/viewpost.jsp?thread=86641" rel="nofollow noreferrer">part 2</a>。</li>
<li><a href="http://code.google.com/p/rpython/" rel="nofollow noreferrer">RPython</a>,Python的一个子集,有可能被静态分析到足以进行某种形式的类型检查。</li>
</ul>