pycharm 对代码做静态检查

对于下面这种情况,java c这些提前编译的语言,不给你运行机会就立马报错了,但对于动态语言运行之后才能报错,用运行的方法来检查代码错误是在是太坑了,这是py对比静态语言的巨大劣势,尤其是代码文件多行数较大时候,劣势有些明显。

 

 1 #coding=utf8
 2 import time
 3 
 4 class A(object):
 5     def __init__(self):
 6         self.name = 'xiaomin'
 7 
 8 def fun():
 9     for i in range(100):
10         time.sleep(10)
11         print i
12         if i == 70:
13             print bbbb
14 
15 
16 fun()
time.sleep(600)
17 print A().age

这段代码有错误,第13行本地和全局中都找不到bbbb。

第17行A类的实例没有age这个属性,强行使用会在运行时候报错。

 

但这个报错有很大缺陷,第13行报错需要运行后等到第700秒才报错,如果不调用fun函数,第17行需要等600秒才报错,这里的sleep用来泛指运行其他代码功能消耗的时间。

尤其是代码文件多,嵌套判断多,不能很快的报出一些明显错误,实在是不太好,如果是不小一在编辑器哪一段按了几个键盘多打了几个字母,还要等运行才报错,那是十分坑的。这可能是国内大的项目,用py语言很少的原因之一。

 

还好,有一些工具flake8,pylint检查,如果使用pycharm,那就用自带的inspect code功能来检查。

 

 最好设置一个自定义按键。

 

 

 这样就能找到这个bbbb和age属性错误了。其余的是pep8语法,2to3的过时写法检查

 这样的好处是不需要等运行10分钟后才发现错误,而是很快就发现错误,减少一些测试时间,不然老是改来改去运行,很糟糕。

 

posted @ 2017-11-19 20:04  北风之神0509  阅读(6115)  评论(1编辑  收藏  举报