python 提高开发效率的5个小技巧


Posted in Python onOctober 19, 2020

很多时候学习是一种难者不会,会者不难的事情。

下面的5个python技巧是性价比极高的知识点,一学就会,不难但是相当管用。

使用交互模式

使用python -i xxxx.py可以直接进入python的交互模式,可以很方便的调用xxxx.py中定义的方法和函数,特别适合调试没有main()方法的文件,强力推荐。

使用pdb进行调试

很多从c++/java转到python的同学可能对python没有断点功能相当失望。

其实python自带的pdb库就可以解决这个问题。

看这个例子。

def sum(a, b):
  return a + b

a,b = 1, 2
import pdb
pdb.set_trace()
sum(a, b)

运行这个文件,这时候就会进入调试模式,按n运行下一行,按pp打印出任何你想打印的变量和值,按q退出。

-> sum(a, b)
(Pdb) pp a
1
(Pdb) pp b
2
(Pdb) n
--Return--
> pdb_example.py(7)<module>()->None
-> sum(a, b)
(Pdb) q
Traceback (most recent call last):
 File "pdb_example.py", line 7, in <module>
  sum(a, b)
 File "D:\dev\python3\lib\bdb.py", line 52, in trace_dispatch
  return self.dispatch_return(frame, arg)
 File "D:\dev\python3\lib\bdb.py", line 96, in dispatch_return
  if self.quitting: raise BdbQuit
bdb.BdbQuit

过程如上面所示,所以简单记住想调试的时候用下面这两行代码

import pdb
pdb.set_trace()

这应该比pycharm香吧。

使用pyenv

pyenv可以创建隔离的python开发环境,你可以实现在本机同时安装多个版本的三方库功能。

比如你可以在本机同时安装django0.1/django0.2诸如此类的版本,互不干扰。

详细的就不说明了,资料很多,大家可以去搜索一下。

列表/字典表达式

这是python里相当实用的一个功能。

比如下面这段代码

l = [1, 3, 5, 7, 9, 11]

res = []
for item in l:
  res.append(item + 1)
print(res)

这里我们把列表l里的每个数都加了1。当然这样写是没错的了,不过有更简单的办法。

print([i + 1 for i in l])

一行搞定,成熟老练。

我们甚至可以在列表表达式里增加条件判断,比如只把10以下的数加1并打印出来

print([i + 1 for i in l if i < 10])

相关资料也很多,强烈推荐去学习一下。

lambda

python里的匿名函数功能,熟悉js的同学应该感到亲切,特别适合用来做回调。

比如我们要过滤列表中所有的奇数

l = [i for i in range(1, 100)]
print(l)

def is_odd(num):
  return num % 2 != 0

print([i for i in filter(is_odd, l)])

这样定义了一个is_odd函数就显得??铝耍?蝗缡褂?ambda这样来。

print([i for i in filter(lambda x: x % 2 != 0, l)])

是不是看上去好多了?

总结

这里5个小技巧能极大的提升大家python的开发效率,如果有其他特多技巧,欢迎留言讨论。

以上就是python 提高开发效率的5个小技巧的详细内容,更多关于python 提高开发效率技巧的资料请关注三水点靠木其它相关文章!

Python 相关文章推荐
linux环境下安装pyramid和新建项目的步骤
Nov 27 Python
深入理解Python中命名空间的查找规则LEGB
Aug 06 Python
Python字符编码判断方法分析
Jul 01 Python
Python使用Scrapy保存控制台信息到文本解析
Dec 27 Python
python处理csv中的空值方法
Jun 22 Python
如何用python写一个简单的词法分析器
Dec 18 Python
python3中property使用方法详解
Apr 23 Python
详解Python二维数组与三维数组切片的方法
Jul 18 Python
详解Pycharm出现out of memory的终极解决方法
Mar 03 Python
弄清Pytorch显存的分配机制
Dec 10 Python
matplotlib交互式数据光标实现(mplcursors)
Jan 13 Python
Django使用echarts进行可视化展示的实践
Jun 10 Python
python 利用toapi库自动生成api
Oct 19 #Python
协程Python 中实现多任务耗资源最小的方式
Oct 19 #Python
python爬取音频下载的示例代码
Oct 19 #Python
Python爬虫教程知识点总结
Oct 19 #Python
自定义Django_rest_framework_jwt登陆错误返回的解决
Oct 18 #Python
如何利用python读取micaps文件详解
Oct 18 #Python
Python中Yield的基本用法
Oct 18 #Python
You might like
MySQL数据源表结构图示
2008/06/05 PHP
PHP 错误之引号中使用变量
2009/05/04 PHP
通过缓存数据库结果提高PHP性能的原理介绍
2012/09/05 PHP
php使用ZipArchive函数实现文件的压缩与解压缩
2015/10/27 PHP
浅谈Yii乐观锁的使用及原理
2017/07/25 PHP
PHP字典树(Trie树)定义与实现方法示例
2017/10/09 PHP
PHP使用curl_multi_select解决curl_multi网页假死问题的方法
2018/08/15 PHP
js数组的操作详解
2013/03/27 Javascript
jquery和css3实现的炫酷时尚的菜单导航
2014/09/01 Javascript
为何JS操作的href都是javascript:void(0);呢
2015/11/12 Javascript
JavaScript中获取纯正的undefined的方法
2016/03/06 Javascript
jQuery zTree树插件动态加载实例代码
2017/05/11 jQuery
Vue脚手架的简单使用实例
2018/07/10 Javascript
微信小程序获取地理位置及经纬度授权代码实例
2019/09/18 Javascript
vue iview的菜单组件Mune 点击不高亮的解决方案
2019/11/01 Javascript
Django在Win7下的安装及创建项目hello word简明教程
2014/07/14 Python
python实现识别相似图片小结
2016/02/22 Python
Python docx库用法示例分析
2019/02/16 Python
Python学习笔记之读取文件、OS模块、异常处理、with as语法示例
2019/06/04 Python
Python类中方法getitem和getattr详解
2019/08/30 Python
Python3多线程版TCP端口扫描器
2019/08/31 Python
Selenium启动Chrome时配置选项详解
2020/03/18 Python
ITK 实现多张图像转成单个nii.gz或mha文件案例
2020/07/01 Python
Python通过字典映射函数实现switch
2020/11/06 Python
python使用Windows的wmic命令监控文件运行状况,如有异常发送邮件报警
2021/01/30 Python
Html5实现移动端、PC端 刮刮卡效果
2016/06/30 HTML / CSS
英国团购网站:Groupon英国
2017/11/28 全球购物
日常奢侈品,轻松购物:Verishop
2019/08/20 全球购物
Java里面如何创建一个内部类的实例
2015/01/19 面试题
热爱祖国演讲稿
2014/05/04 职场文书
社区平安建设方案
2014/05/25 职场文书
公路局群众路线教育实践活动第一阶段工作汇报
2014/10/25 职场文书
教师创先争优承诺书
2015/04/27 职场文书
期中考试后的感想
2015/08/07 职场文书
2016年万圣节活动总结
2016/04/05 职场文书
索尼ICF-36收音机评测
2022/04/30 无线电