Raj*_*thi 5 compilation python-3.x
您可以使用(linting)工具或编译步骤来捕获python中的导入/名称和其他错误吗?
另一个选择是确保测试所有可能的代码路径(这并不总是可行的,尤其是对于现有的大型代码库和其他原因而言)
这里有些例子。
syntax error代替import error。def test():
print("Time now is ..", datetime.datetime())
Run Code Online (Sandbox Code Playgroud)
pylint输出:
E0602: Undefined variable 'datetime' (undefined-variable)
Run Code Online (Sandbox Code Playgroud)
from datetime import datetime
def test():
print("Time now is ..", datetime.today2())
Run Code Online (Sandbox Code Playgroud)
编辑:要添加另一个选项。
这样做会import *显示一些错误,但不会显示函数内部的语句中的错误。
报告此错误
from datetime import datetime
print("today2", datetime.today2())
Run Code Online (Sandbox Code Playgroud)
错误:
Python 3.7.0 (default, Aug 22 2018, 15:22:56)
>>> from test import *
...
print("today2", datetime.today2())
AttributeError: type object 'datetime.datetime' has no attribute 'today2'
>>>
Run Code Online (Sandbox Code Playgroud)
这不是。
from datetime import datetime
def test():
print("Time now is ..", datetime.today2())
Run Code Online (Sandbox Code Playgroud)
小智 3
根据我的经验,flake8 在捕获丢失的导入和名称错误方面做得很好。为了捕获丢失的导入,您不能使用通配符导入,例如“from foo import *”,因为它无法猜测将创建哪些名称。此外,当存在语法错误时,它无法执行这些检测,因此您必须首先修复这些错误。
| 归档时间: |
|
| 查看次数: |
170 次 |
| 最近记录: |