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 open读写文件实现脚本
Sep 06 Python
linux系统使用python监控apache服务器进程脚本分享
Jan 15 Python
Python中的二叉树查找算法模块使用指南
Jul 04 Python
Python实现字符串匹配算法代码示例
Dec 05 Python
python 矩阵增加一行或一列的实例
Apr 04 Python
pycharm安装和首次使用教程
Aug 27 Python
python 利用for循环 保存多个图像或者文件的实例
Nov 09 Python
python,Django实现的淘宝客登录功能示例
Jun 12 Python
django使用django-apscheduler 实现定时任务的例子
Jul 20 Python
解决python gdal投影坐标系转换的问题
Jan 17 Python
Python基于gevent实现高并发代码实例
May 15 Python
Python实现王者荣耀自动刷金币的完整步骤
Jan 22 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编程最快明白》第四讲:日期、表单接收、session、cookie
2010/11/01 PHP
PHP ? EasyUI DataGrid 资料存的方式介绍
2012/11/07 PHP
php实现mysql数据库操作类分享
2014/02/14 PHP
php导出csv格式数据并将数字转换成文本的思路以及代码分享
2014/06/05 PHP
PHP计算一年多少个星期和每周的开始和结束日期
2014/07/01 PHP
CodeIgniter框架钩子机制实现方法【hooks类】
2018/08/21 PHP
详解Laravel服务容器的绑定与解析
2019/11/05 PHP
JavaScript 私有成员分析
2009/01/13 Javascript
Javascript合并表格中具有相同内容单元格示例
2013/08/11 Javascript
Angular用来控制元素的展示与否的原生指令介绍
2015/01/07 Javascript
asp知识整理笔记3(问答模式)
2015/09/27 Javascript
Bootstrap布局之栅格系统详解
2016/06/13 Javascript
基于Bootstrap的Metronic框架实现条码和二维码的生成及打印处理操作
2016/08/29 Javascript
AngularJs IE Compatibility 兼容老版本IE
2016/09/01 Javascript
javascript循环链表之约瑟夫环的实现方法
2017/01/16 Javascript
详解angularjs实现echart图表效果最简洁教程
2017/11/29 Javascript
详解vue+vuex+koa2开发环境搭建及示例开发
2018/01/22 Javascript
新版vue-cli模板下本地开发环境使用node服务器跨域的方法
2018/04/03 Javascript
微信小程序日期选择器实例代码
2018/07/18 Javascript
浅谈vue后台管理系统权限控制思考与实践
2018/12/19 Javascript
JS 获取文件后缀,判断文件类型(比如是否为图片格式)
2020/05/09 Javascript
jQuery 淡入/淡出效果函数用法分析
2020/05/19 jQuery
Vue实现开关按钮拖拽效果
2020/09/22 Javascript
RC4文件加密的python实现方法
2015/06/30 Python
Python实现邮件的批量发送的示例代码
2018/01/23 Python
对python借助百度云API对评论进行观点抽取的方法详解
2019/02/21 Python
python list数据等间隔抽取并新建list存储的例子
2019/11/27 Python
在python中logger setlevel没有生效的解决
2020/02/21 Python
Python通过getattr函数获取对象的属性值
2020/10/16 Python
Python加载数据的5种不同方式(收藏)
2020/11/13 Python
HTML5到底会有什么发展?HTML5的前景展望
2015/07/07 HTML / CSS
什么造成了Java里面的异常
2016/04/24 面试题
SQL Server 2000数据库的文件有哪些,分别进行描述
2013/03/30 面试题
2015年妇产科工作总结
2015/05/18 职场文书
护理专业毕业自我鉴定
2019/08/12 职场文书
常用的Python代码调试工具总结
2021/06/23 Python