1
21
下面是pylint的示例输出,它是由普通程序生成的:
如您所见,它检测未定义的变量,而py-compile(故意)不会。
简单的例子说明为什么测试不够好,即使它们涵盖了“每一行”:
编辑:PyChecker为我处理三元:
|
2
2
其他人也提到过类似pylint这样的工具,这些工具非常好,但其长短不一的原因是,完全不可能做到100%。事实上,你甚至可能不想这样做。Python动态性的一部分好处是,您可以做一些疯狂的事情,比如通过字典访问将名称插入本地范围。 归根结底,如果您想在编译时捕获类型错误,就不应该使用Python。语言选择总是涉及一系列的权衡。如果您选择python而不是c,请注意,为了更快的开发、更好的字符串操作等,您需要交易一个强大的类型系统。 |
3
1
我认为您需要的是代码测试行覆盖率。您希望将测试添加到脚本中,以确保所有代码行,或尽可能多的代码行都得到测试。测试是一项很大的工作,但是如果你想要你所要求的那种保证,就没有免费的午餐,对不起:(。 |
4
1
如果您使用Eclipse Pydev 作为一个IDE,它可以立即用红色斜线标记许多输入错误,并且还集成了pylint。例如:
将标记为“未定义变量:食物”。当然,这并不总是准确的(也许食物是早先用setattr或其他外来技术定义的),但大多数时候它都很有效。 一般来说,您只能静态地分析您的代码,直到您的代码实际上是静态的;代码越动态,您真正需要的自动化测试就越多。 |
5
0
您的代码在运行时会被编译,如果代码中有语法错误,python运行时会抱怨。与静态编译语言(如C/C++或Java)相比,它不检查变量名称和类型是否正确,因为您需要实际运行代码(例如,自动测试)。 |
batman · 如何用特定模式grep特定行及其子网行? 2 年前 |
Jensen Holm · 在非常大的字符串中查找链接时遇到问题 2 年前 |
MBF · PHP导入/解析XML文件内容保存到数据库 2 年前 |
user10717742 · 用java编写的自定义文件解析器需要改进 2 年前 |
Muhsin Muhammed · 向文件中的行添加引号和逗号 2 年前 |
Felkru · 添加字符串会在Javascript中返回空字符串 2 年前 |
Mustard Tiger · 熊猫解析文本列 2 年前 |