![]() |
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)相比,它不检查变量名称和类型是否正确,因为您需要实际运行代码(例如,自动测试)。 |
![]() |
July · 如何定义数字间隔,然后四舍五入 1 年前 |
![]() |
user026 · 如何根据特定窗口的平均值(行数)创建新列? 1 年前 |
|
Ashok Shrestha · 需要追踪特定的颜色线并获取坐标 1 年前 |
![]() |
Nicote Ool · 在FastApi和Vue3中获得422 1 年前 |
|
Abdulaziz · 如何对集合内的列表进行排序[重复] 1 年前 |
![]() |
asmgx · 为什么合并数据帧不能按照python中的预期方式工作 1 年前 |