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中非常实用的一些功能和函数分享
Feb 14 Python
python实现超简单端口转发的方法
Mar 13 Python
理解Python中的类与实例
Apr 27 Python
python中子类继承父类的__init__方法实例
Dec 15 Python
python中如何正确使用正则表达式的详细模式(Verbose mode expression)
Nov 08 Python
python实现用户管理系统
Jan 10 Python
python删除本地夹里重复文件的方法
Nov 19 Python
对python sklearn one-hot编码详解
Jul 10 Python
python安装pywin32clipboard的操作方法
Jan 24 Python
如何基于Python获取图片的物理尺寸
Nov 25 Python
使用python把xmind转换成excel测试用例的实现代码
Oct 12 Python
python 将Excel转Word的示例
Mar 02 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+mysql实现数据库随机重排实例
2014/10/17 PHP
php实现mysql备份恢复分卷处理的方法
2014/12/26 PHP
PHP生成各种常见验证码和Ajax验证过程
2016/01/10 PHP
ThinkPHP连接Oracle数据库
2016/04/22 PHP
PHP处理Ajax请求与Ajax跨域问题
2017/02/13 PHP
PHP获取数组中单列值的方法
2017/06/10 PHP
创建无限极分类树型结构的简单方法
2017/06/20 PHP
asp.net HttpHandler实现图片防盗链
2009/11/09 Javascript
在JavaScript的正则表达式中使用exec()方法
2015/06/16 Javascript
javascript实现网页子页面遍历回调的方法(涉及 window.frames、递归函数、函数上下文)
2015/07/27 Javascript
利用JS hash制作单页Web应用的方法详解
2017/10/10 Javascript
详解vue指令与$nextTick 操作DOM的不同之处
2018/08/02 Javascript
jQuery实现获取及设置CSS样式操作详解
2018/09/05 jQuery
解决angular2在双向数据绑定时[(ngModel)]无法使用的问题
2018/09/13 Javascript
使用post方法实现json往返传输数据的方法
2019/03/30 Javascript
详解webpack打包vue项目之后生成的dist文件该怎么启动运行
2019/09/06 Javascript
微信小程序全局变量GLOBALDATA的定义和调用过程解析
2019/09/23 Javascript
vue 实现走马灯效果
2019/10/28 Javascript
浅析python 内置字符串处理函数的使用方法
2014/06/11 Python
Python虚拟环境Virtualenv使用教程
2015/05/18 Python
微信跳一跳python辅助脚本(总结)
2018/01/11 Python
Python元组及文件核心对象类型详解
2018/02/11 Python
Python3如何实现Win10桌面自动切换
2020/08/11 Python
详解如何用HTML5 Canvas API控制图片的缩放变换
2016/03/22 HTML / CSS
巴西最大的珠宝连锁店:Vivara
2019/04/18 全球购物
高级护理实习生自荐信
2013/09/28 职场文书
先进党支部事迹材料
2014/01/13 职场文书
学生自我评价范文
2014/02/02 职场文书
迟到检讨书300字
2014/02/14 职场文书
2014年高中生自我评价范文
2014/09/26 职场文书
安全生产月宣传标语
2014/10/06 职场文书
无保留意见审计报告
2015/06/05 职场文书
2015暑期工社会实践报告
2015/07/13 职场文书
Python基础学习之奇异的GUI对话框
2021/05/27 Python
Mysql数据库中datetime、bigint、timestamp来表示时间选择,谁来存储时间效率最高
2021/08/23 MySQL
MySQL库表太大怎么办? 数据库分库分表项目实践
2022/04/11 MySQL