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实现批量重命名文件的代码
May 25 Python
100行Python代码实现自动抢火车票(附源码)
Jan 11 Python
Python打印输出数组中全部元素
Mar 13 Python
python散点图实例之随机漫步
Aug 27 Python
Python实现点阵字体读取与转换的方法
Jan 29 Python
Python-copy()与deepcopy()区别详解
Jul 12 Python
python 3.6.7实现端口扫描器
Sep 04 Python
浅析pandas 数据结构中的DataFrame
Oct 12 Python
python银行系统实现源码
Oct 25 Python
Eclipse配置python默认头过程图解
Apr 26 Python
python空元组在all中返回结果详解
Dec 15 Python
python批量创建变量并赋值操作
Jun 03 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去除数组中重复的元素并按键名排序函数
2008/08/18 PHP
Php中文件下载功能实现超详细流程分析
2012/06/13 PHP
如何让搜索引擎抓取AJAX内容解决方案
2014/08/25 PHP
phpQuery让php处理html代码像jQuery一样方便
2015/01/06 PHP
PHP 生成N个不重复的随机数
2015/01/21 PHP
php分页原理 分页代码 分页类制作教程
2016/09/23 PHP
PHP实现数据库统计时间戳按天分组输出数据的方法
2017/10/10 PHP
JS 强制设为首页的代码
2009/01/31 Javascript
Javascript this 的一些学习总结
2012/08/31 Javascript
IE网页js语法错误2行字符1、FF中正常的解决方法
2013/09/09 Javascript
js showModalDialog弹出窗口实例详解
2014/01/07 Javascript
JSON相关知识汇总
2015/07/03 Javascript
JavaScript实现时间倒计时跳转(推荐)
2016/06/28 Javascript
AngularJS实现一次监听多个值发生的变化
2016/08/31 Javascript
详解react-webpack2-热模块替换[HMR]
2017/08/03 Javascript
ES6中Array.includes()函数的用法
2017/09/20 Javascript
微信小程序自定义组件实现tabs选项卡功能
2018/07/14 Javascript
NodeJs实现简易WEB上传下载服务器
2019/08/10 NodeJs
Vue路由守卫及页面登录权限控制的设置方法(两种)
2020/03/31 Javascript
JavaScript 声明私有变量的两种方式
2021/02/05 Javascript
[51:15]完美世界DOTA2联赛PWL S2 PXG vs Magma 第一场 11.21
2020/11/24 DOTA
Python虚拟环境Virtualenv使用教程
2015/05/18 Python
Python获取某一天是星期几的方法示例
2017/01/17 Python
python数据结构之列表和元组的详解
2017/09/23 Python
python 协程中的迭代器,生成器原理及应用实例详解
2019/10/28 Python
Python列表倒序输出及其效率详解
2020/03/04 Python
pytorch  网络参数 weight bias 初始化详解
2020/06/24 Python
Giglio英国站:意大利奢侈品购物网
2018/03/06 全球购物
澳大利亚鞋仓库:Shoe Warehouse
2019/07/25 全球购物
应付会计岗位职责
2013/12/12 职场文书
创业计划书六个要素
2013/12/26 职场文书
金融管理毕业生求职信
2014/03/03 职场文书
群众路线组织生活会发言材料
2014/10/17 职场文书
Python matplotlib可视化之绘制韦恩图
2022/02/24 Python
Oracle 多表查询基本语法实例
2022/04/18 Oracle
html用代码制作虚线框怎么做? dw制作虚线圆圈的技巧
2022/12/24 HTML / CSS