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 httplib模块使用实例
Apr 11 Python
Python中sort和sorted函数代码解析
Jan 25 Python
Appium+Python自动化测试之运行App程序示例
Jan 23 Python
对DataFrame数据中的重复行,利用groupby累加合并的方法详解
Jan 30 Python
Python实现删除排序数组中重复项的两种方法示例
Jan 31 Python
Python这样操作能存储100多万行的xlsx文件
Apr 16 Python
python变量的存储原理详解
Jul 10 Python
浅析PEP572: 海象运算符
Oct 15 Python
OpenCV里的imshow()和Matplotlib.pyplot的imshow()的实现
Nov 25 Python
Python可变对象与不可变对象原理解析
Feb 25 Python
Python多线程:主线程等待所有子线程结束代码
Apr 25 Python
Python如何使用神经网络进行简单文本分类
Feb 25 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
PHP5与MySQL数据库操作常用代码 收集
2010/03/21 PHP
基于php冒泡排序算法的深入理解
2013/06/09 PHP
PHP实现搜索时记住状态的方法示例
2018/05/11 PHP
TP(thinkPHP)框架多层控制器和多级控制器的使用示例
2018/06/13 PHP
formStorage 基于jquery的一个插件(存储表单中元素的状态到本地)
2012/01/20 Javascript
js函数定时器实现定时读取系统实时连接数
2014/04/30 Javascript
javascript实现动态模态绑定grid过程代码
2014/09/22 Javascript
js实现多选项切换导航菜单的方法
2015/02/06 Javascript
JavaScript仿网易选项卡制作代码
2016/10/06 Javascript
JS实现复制功能
2017/03/01 Javascript
JavaScript异步加载问题总结
2018/02/17 Javascript
jQuery实现基本隐藏与显示效果的方法详解
2018/09/05 jQuery
在Vuex使用dispatch和commit来调用mutations的区别详解
2018/09/18 Javascript
vue+echarts实现可拖动节点的折线图(支持拖动方向和上下限的设置)
2019/04/12 Javascript
详解vue项目中实现图片裁剪功能
2019/06/07 Javascript
基于vue+uniapp直播项目实现uni-app仿抖音/陌陌直播室功能
2019/11/12 Javascript
VUE中使用HTTP库Axios方法详解
2020/02/05 Javascript
JavaScript canvas仿代码流瀑布
2020/02/10 Javascript
Python浅拷贝与深拷贝用法实例
2015/05/09 Python
python 数据的清理行为实例详解
2017/07/12 Python
tensorflow tf.train.batch之数据批量读取方式
2020/01/20 Python
pytorch对梯度进行可视化进行梯度检查教程
2020/02/04 Python
Python自动发送和收取邮件的方法
2020/08/12 Python
纯CSS3制作的简洁蓝白风格的登录模板(非IE效果更好)
2013/08/11 HTML / CSS
如何设置Java的运行环境
2013/04/05 面试题
医学生个人求职信范文
2013/09/24 职场文书
打架检讨书300字
2014/02/02 职场文书
新春联欢会主持词
2014/03/24 职场文书
外语系毕业生求职自荐信
2014/04/12 职场文书
学校法制宣传日活动总结
2014/11/01 职场文书
2014年后勤管理工作总结
2014/12/01 职场文书
大学教师个人总结
2015/02/10 职场文书
CSS3 制作精美的定价表
2021/04/06 HTML / CSS
iPhone13 Pro外观确定,升级4800万镜头,4月20日发新品
2021/04/15 数码科技
SpringBoot集成MongoDB实现文件上传的步骤
2022/04/18 MongoDB
springboot读取resources下文件的方式详解
2022/06/21 Java/Android