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

 #coding=utf8
import time class A(object):
def __init__(self):
self.name = 'xiaomin' def fun():
for i in range(100):
time.sleep(10)
print i
if i == 70:
print bbbb fun()
time.sleep(600)
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分钟后才发现错误,而是很快就发现错误,减少一些测试时间,不然老是改来改去运行,很糟糕。

pycharm 对代码做静态检查的更多相关文章

  1. QtCreator 可以通过 Clang-Tidy 和 CLazy 对你的代码进行静态检查

    QtCreator 可以通过 Clang-Tidy 和 CLazy 对你的代码进行静态检查 打开你的工程,点击Analyze -> Clang-Tidy and CLazy 选择你想分析的 cp ...

  2. Jenkins 配置 FindBugs,Checkstyle,PMD 实现代码的静态检查 (14)

    一.插件介绍 FindBugs:静态分析工具,它检查类或者 JAR 文件,将字节码与一组缺陷模式进行对比以发现可能的问题.利用这个工具,就可以在不实际运行程序的情况对软件进行分析.它可以帮助改进代码的 ...

  3. 四种java代码静态检查工具

    [转载]常用 Java 静态代码分析工具的分析与比较 转载自 开源中国社区 http://www.oschina.net/question/129540_23043       1月16日厦门 OSC ...

  4. Android(Java)利用findbugs进行代码静态检查

    主要介绍利用java静态代码检查工具findbugs进行代码检查,包括其作用.安装.使用.高级功能(远程review和bug同步). 虽然Android提供了Test Project工程以及instr ...

  5. maven配置checkstyle插件对代码规范进行静态检查

    checkstyle配置的官方网站:http://checkstyle.sourceforge.net/config.html (1)新建maven项目,配置checkstyle插件 pom.xml ...

  6. php求和为s的两个数字(多复制上面写的代码,有利于检查错误)(由浅入深,先写简单算法,做题的话够用就行)

    php求和为s的两个数字(多复制上面写的代码,有利于检查错误)(由浅入深,先写简单算法,做题的话够用就行) 一.总结 1.多复制上面写的代码,有利于检查错误 2.一层循环就解决了,前后两个指针,和大了 ...

  7. 使用gitlab runner进行CI(三):使用sonarqube做c++的静态检查

    目录 1. gitlab-ci.yml的配置 1.1 几个基本概念 1.2 使用CI进行代码检查demo 2. Sonarqube安装和配置 2.1 Sonarqube安装 2.2 数据库配置 2.3 ...

  8. Kotlin Android项目静态检查工具的使用

    Kotlin Android项目静态检查工具的使用 Kotlin Android项目可用的静态检查工具: Android官方的Lint, 第三方的ktlint和detekt. 静态检查工具 静态检查工 ...

  9. 对象部分初始化:原理以及验证代码(双重检查锁与volatile相关)

    对象部分初始化:原理以及验证代码(双重检查锁与volatile相关) 对象部分初始化被称为 Partially initialized objects / Partially constructed ...

随机推荐

  1. UMEditor(Ueditor mini)修改图片上传路径

    UMEditor(Ueditor mini)修改图片上传路径 imageUp.ashx string pathbase = "/UpLoad/images/"; //保存文件夹在网 ...

  2. maven-parent的pom.xml配置

    //-------------------------------------------system-parent------------------------------------------ ...

  3. php 常用的标签比较

    eq或者 equal 等于 neq 或者notequal 不等于 gt 大于 egt 大于等于 lt 小于 elt 小于等于 heq 恒等于 nheq 不恒等于

  4. asp.net请求管道和页面生命周期

  5. 使用 js替换网页中的关键词为链接

    要求把一段html脚本中的疾病名添加到疾病库的链接,只添加一次,要避开超链接或图片链接. 最初是用的    str.replace('糖尿病', '<a href=...>糖尿病</ ...

  6. Sword protobuf学习四

    #include <iostream> #include <string> #include <sys/types.h> /* See NOTES */ #incl ...

  7. SDRAM 学习笔记(一)

    前面几篇博客已经讲到了关于0V7725的相关驱动问题,那么OV7725驱动成功之后,设定OV7725输出RGB565格式,那么对于640x480x16,那么若是选用FIFO,应该设置为位宽16bit, ...

  8. Linux操作_磁盘管理_增加虚拟磁盘

    环境:虚拟机 VM 12,Linux版本号 CentOS 7.3 1,在当前的虚拟机选项卡点击鼠标右键,选择“设置” 2,在弹出的对话框中左侧选中“磁盘”->点击下方“添加”按钮,在弹出的“添加 ...

  9. Retrofit/OkHttp API接口加固技术实践(下)

    作者/Tamic http://blog.csdn.net/sk719887916/article/details/65448628 imageMogr2/auto-orient/strip%7Cim ...

  10. JS 在火狐浏览器下关闭弹窗

    1.首先,要确定火狐设置是否允许通过JS代码window.close()方法关闭标签. 确定方式如下:      在Firefox地址栏里输入 about:config    在配置列表中找到dom. ...