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实现抓取页面上链接的简单爬虫分享
Jan 21 Python
Python的collections模块中namedtuple结构使用示例
Jul 07 Python
Python中的单继承与多继承实例分析
May 10 Python
Python判断是否json是否包含一个key的方法
Dec 31 Python
django框架面向对象ORM模型继承用法实例分析
Jul 29 Python
Python编程快速上手——强口令检测算法案例分析
Feb 29 Python
python3注册全局热键的实现
Mar 22 Python
matlab、python中矩阵的互相导入导出方式
Jun 01 Python
python 图像判断,清晰度(明暗),彩色与黑白实例
Jun 04 Python
Python实现Keras搭建神经网络训练分类模型教程
Jun 12 Python
Python实现EM算法实例代码
Oct 04 Python
python爬取代理IP并进行有效的IP测试实现
Oct 09 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+jquery编码方面的一些心得(utf-8 gb2312)
2010/10/12 PHP
php使浏览器直接下载pdf文件的方法
2013/11/15 PHP
php session 写入数据库
2016/02/13 PHP
php5.5使用PHPMailer-5.2发送邮件的完整步骤
2018/10/14 PHP
Iframe thickbox2.0使用的方法
2009/03/05 Javascript
在jQuery 1.5中使用deferred对象的代码(翻译)
2011/03/10 Javascript
用Javascript实现Windows任务管理器的代码
2012/03/27 Javascript
jQuery(js)获取文字宽度(显示长度)示例代码
2013/12/31 Javascript
javascript中for/in循环及使用技巧
2015/09/01 Javascript
JavaScript入门教程之引用类型
2016/05/04 Javascript
jquery实现无刷新验证码的简单实例
2016/05/19 Javascript
Vuejs第八篇之Vuejs组件的定义实例解析
2016/09/05 Javascript
简单实现js选项卡切换效果
2017/02/09 Javascript
jQuery插件ContextMenu自定义图标
2017/03/15 Javascript
JavaScript字符串检索字符的方法
2017/06/23 Javascript
Node.js中package.json中库的版本号(~和^)
2019/04/02 Javascript
vue 实现input表单元素的disabled示例
2019/10/28 Javascript
[07:09]DOTA2-DPC中国联赛 正赛 Ehome vs Elephant 选手采访
2021/03/11 DOTA
用python实现的去除win下文本文件头部BOM的代码
2013/02/10 Python
跟老齐学Python之画圈还不简单吗?
2014/09/20 Python
Djang中静态文件配置方法
2015/07/30 Python
Python中static相关知识小结
2018/01/02 Python
django admin 添加自定义链接方式
2020/03/11 Python
Python把图片转化为pdf代码实例
2020/07/28 Python
Giuseppe Zanotti美国官方网站:将鞋履视为高级时装般精心制作
2018/02/06 全球购物
Clarks其乐鞋荷兰官网:Clarks荷兰
2019/07/05 全球购物
英国最好的温室之家:Greenhouses Direct
2019/07/13 全球购物
俄罗斯Sportmarket体育在线商店:用于旅游和户外活动
2019/11/12 全球购物
一些PHP的面试题
2015/05/06 面试题
优秀英语专业毕业生求职信
2013/11/23 职场文书
如何编写优秀的食品项目创业计划书
2014/01/23 职场文书
高二政治教学反思
2014/02/01 职场文书
暑假安全教育广播稿
2014/09/10 职场文书
医德医风学习心得体会
2016/01/25 职场文书
深入理解redis中multi与pipeline
2021/06/02 Redis
OpenCV实现常见的四种图像几何变换
2022/04/01 Python