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 相关文章推荐
使用scrapy实现爬网站例子和实现网络爬虫(蜘蛛)的步骤
Jan 23 Python
Python实现遍历数据库并获取key的值
May 17 Python
在Python的Django框架中创建和使用模版
Jul 15 Python
python中模块的__all__属性详解
Oct 26 Python
python中计算一个列表中连续相同的元素个数方法
Jun 29 Python
基于OpenCV python3实现证件照换背景的方法
Mar 22 Python
python使用pandas处理大数据节省内存技巧(推荐)
May 05 Python
django框架实现一次性上传多个文件功能示例【批量上传】
Jun 19 Python
如何利用Python模拟GitHub登录详解
Jul 15 Python
python 实现线程之间的通信示例
Feb 14 Python
Python经常使用的一些内置函数
Apr 11 Python
Python内置包对JSON文件数据进行编码和解码
Apr 12 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
Terran剧情介绍
2020/03/14 星际争霸
将PHP作为Shell脚本语言使用
2006/10/09 PHP
修改Laravel5.3中的路由文件与路径
2016/08/10 PHP
PHP对象、模式与实践之高级特性分析
2016/12/08 PHP
PHP 传输会话curl函数的实例详解
2017/09/12 PHP
Laravel框架实现的批量删除功能示例
2019/01/16 PHP
原型方法的不同写法居然会影响调试的解决方法
2007/03/08 Javascript
有效的捕获JavaScript焦点的方法小结
2009/10/08 Javascript
网页整体变灰白色(兼容各浏览器)实例
2013/04/21 Javascript
Jquery显示、隐藏元素以及添加删除样式
2013/08/09 Javascript
js脚本获取webform服务器控件的方法
2014/05/16 Javascript
js使用正则实现ReplaceAll全部替换的方法
2014/08/22 Javascript
node.js中的fs.fsync方法使用说明
2014/12/15 Javascript
使用angular写一个hello world
2015/01/23 Javascript
Javascript中prototype属性实现给内置对象添加新的方法
2015/05/14 Javascript
JS实现将Asp.Net的DateTime Json类型转换为标准时间的方法
2016/08/02 Javascript
基于JavaScript实现购物网站商品放大镜效果
2016/09/06 Javascript
webpack入门必知必会
2017/01/16 Javascript
three.js实现围绕某物体旋转
2017/01/25 Javascript
详解VueRouter进阶之导航钩子和路由元信息
2017/09/13 Javascript
JS端基于download.js实现图片、视频时直接下载而不是打开预览
2020/05/09 Javascript
一个计算身份证号码校验位的Python小程序
2014/08/15 Python
python图像常规操作
2017/11/11 Python
python游戏开发的五个案例分享
2020/03/09 Python
python新式类和经典类的区别实例分析
2020/03/23 Python
css3的过滤效果简单实例
2016/08/03 HTML / CSS
HTML5+CSS设置浮动却没有动反而在中间且错行的问题
2020/05/26 HTML / CSS
美国眼镜网:GlassesUSA
2017/09/07 全球购物
现代化办公人员工作的自我评价
2013/10/16 职场文书
中学教师岗位职责
2013/11/26 职场文书
入党积极分子思想汇报范文
2014/01/05 职场文书
就业协议书
2014/09/12 职场文书
2015年政教主任工作总结
2015/07/23 职场文书
2015年社区重阳节活动总结
2015/07/30 职场文书
CSS3通过var()和calc()函数实现动画特效
2021/03/30 HTML / CSS
使用Springboot实现健身房管理系统
2021/07/01 Java/Android