我在本周的代码中发现了以下错误:
import datetime
d = datetime.date(2010,9,24)
if d.isoweekday == 5:
pass
是的,它应该是d.isoweekday()而不是。
我知道,如果我有一个测试用例,我就会得救。 将函数与5进行比较并不是很有用。哦,我不会因此而责怪Python。
我的问题:是否有可以发现此类错误的工具?
答案 0 :(得分:7)
作为替代,大多数Python项目都经过单元测试并经过系统测试。如果你有两个(甚至只是单元测试)你会发现你的问题以及几乎任何其他问题。
正如 dekomote 所说,这在语法上是有效的。 Python 不是静态类型的,因此不能将其作为错误捕获。最多可能是一个警告。
编辑:Python是强类型的,只是在运行时检查类型。
答案 1 :(得分:3)
查看 pylint 它可能会得到它。它确实发现了很多错误。
答案 2 :(得分:3)
嗯,这不是python本身的错误,因为在Python中,函数是可调用对象。您可以通过实现__call__
使任何对象可调用。所以d.isoweekday == 5是有效的声明。这将是假的。
至于其他错误,我建议查看pyflakes - http://divmod.org/trac/wiki/DivmodPyflakes