是否有可以发现像这样的错误的工具?

时间:2010-09-22 12:30:05

标签: python

我在本周的代码中发现了以下错误:

import datetime

d = datetime.date(2010,9,24)
if d.isoweekday == 5:
    pass

是的,它应该是d.isoweekday()而不是。

我知道,如果我有一个测试用例,我就会得救。 将函数与5进行比较并不是很有用。哦,我不会因此而责怪Python。

我的问题:是否有可以发现此类错误的工具?

3 个答案:

答案 0 :(得分:7)

作为替代,大多数Python项目都经过单元测试并经过系统测试。如果你有两个(甚至只是单元测试)你会发现你的问题以及几乎任何其他问题。

正如 dekomote 所说,这在语法上是有效的。 Python 是静态类型的,因此不能将其作为错误捕获。最多可能是一个警告。

编辑:Python是强类型的,只是在运行时检查类型。

答案 1 :(得分:3)

查看 pylint 它可能会得到它。它确实发现了很多错误。

答案 2 :(得分:3)

嗯,这不是python本身的错误,因为在Python中,函数是可调用对象。您可以通过实现__call__使任何对象可调用。所以d.isoweekday == 5是有效的声明。这将是假的。

至于其他错误,我建议查看pyflakes - http://divmod.org/trac/wiki/DivmodPyflakes