pycharm 对代码做静态检查操作


Posted in Python onJune 09, 2020

对于下面这种情况,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功能来检查。

pycharm 对代码做静态检查操作

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

pycharm 对代码做静态检查操作

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

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

反对极端面向过程编程思维方式,喜欢面向对象和设计模式的解读,喜欢对比极端面向过程编程和oop编程消耗代码代码行数的区别和原因。致力于使用oop和36种设计模式写出最高可复用的框架级代码和使用最少的代码行数完成任务,致力于使用oop和设计模式来使部分代码减少90%行,使绝大部分py文件最低减少50%-80%行的写法。

以上这篇pycharm 对代码做静态检查操作就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python之父谈Python的未来形式
Jul 01 Python
python 给DataFrame增加index行名和columns列名的实现方法
Jun 08 Python
使用Python微信库itchat获得好友和群组已撤回的消息
Jun 24 Python
Python 使用Numpy对矩阵进行转置的方法
Jan 28 Python
详解python中@的用法
Mar 27 Python
Python 通过截图匹配原图中的位置(opencv)实例
Aug 27 Python
python nmap实现端口扫描器教程
May 28 Python
python 函数的缺省参数使用注意事项分析
Sep 17 Python
Python算法中的时间复杂度问题
Nov 19 Python
django model object序列化实例
Mar 13 Python
解决django中form表单设置action后无法回到原页面的问题
Mar 13 Python
浅谈PyTorch中in-place operation的含义
Jun 27 Python
Python3读取和写入excel表格数据的示例代码
Jun 09 #Python
Python文件操作模拟用户登陆代码实例
Jun 09 #Python
pyCharm 实现关闭代码检查
Jun 09 #Python
在pycharm中关掉ipython console/PyDev操作
Jun 09 #Python
python 元组的使用方法
Jun 09 #Python
解决pycharm中的run和debug失效无法点击运行
Jun 09 #Python
pyCharm 设置调试输出窗口中文显示方式(字符码转换)
Jun 09 #Python
You might like
php设置编码格式的方法
2013/03/05 PHP
php实现word转html的方法
2016/01/22 PHP
php数值转换时间及时间转换数值用法示例
2017/05/18 PHP
Symfony查询方法实例小结
2017/06/28 PHP
javascript Base类 包含基本的方法
2009/07/22 Javascript
js onkeypress与onkeydown 事件区别详细说明
2012/12/13 Javascript
Jquery写一个鼠标拖动效果实现原理与代码
2012/12/24 Javascript
前台js改变Session的值(用ajax实现)
2012/12/28 Javascript
jquery html动态生成select标签出问题的解决方法
2013/11/20 Javascript
javascript限制文本框输入值类型的方法
2015/05/07 Javascript
jquery实现删除一个元素后面的所有元素功能
2015/12/21 Javascript
Bootstrap每天必学之轮播(Carousel)插件
2016/04/25 Javascript
BootStrap文件上传样式超好看【持续更新】
2016/05/10 Javascript
JavaScript中的this引用(推荐)
2016/08/05 Javascript
JS实现图片上传预览功能
2016/11/21 Javascript
DOM 事件的深入浅出(一)
2016/12/05 Javascript
JavaScript仿微博输入框效果(案例分析)
2016/12/06 Javascript
JavaScript校验Number(4,1)格式的数字实例代码
2017/03/13 Javascript
Angular 5.0 来了! 有这些大变化
2017/11/15 Javascript
javascript Function函数理解与实战
2017/12/01 Javascript
Vue多种方法实现表头和首列固定的示例代码
2018/02/02 Javascript
原生js+css实现tab切换功能
2020/09/17 Javascript
Python中在for循环中嵌套使用if和else语句的技巧
2016/06/20 Python
Python中音频处理库pydub的使用教程
2017/06/07 Python
python 爬虫 批量获取代理ip的实例代码
2018/05/22 Python
使用python将时间转换为指定的格式方法
2018/11/12 Python
linux查找当前python解释器的位置方法
2019/02/20 Python
Flask框架学习笔记之使用Flask实现表单开发详解
2019/08/12 Python
python两种获取剪贴板内容的方法
2020/11/06 Python
日本乐天德国站:Rakuten.de
2019/05/16 全球购物
采购文员岗位职责
2013/11/20 职场文书
应届生简历中的自我评价
2014/01/13 职场文书
法学函授自我鉴定
2014/02/06 职场文书
党员批评与自我批评总结
2014/10/15 职场文书
2016大学迎新欢迎词
2015/09/29 职场文书
如何用Navicat操作MySQL
2021/05/12 MySQL