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 相关文章推荐
深入讲解Java编程中类的生命周期
Feb 05 Python
Python中property属性实例解析
Feb 10 Python
python方法生成txt标签文件的实例代码
May 10 Python
十行代码使用Python写一个USB病毒
Jun 21 Python
ERLANG和PYTHON互通实现过程详解
Jul 05 Python
python爬虫神器Pyppeteer入门及使用
Jul 13 Python
基于Python实现船舶的MMSI的获取(推荐)
Oct 21 Python
Python利用matplotlib绘制约数个数统计图示例
Nov 26 Python
Python 装饰器原理、定义与用法详解
Dec 07 Python
python实现双色球随机选号
Jan 01 Python
Pycharm创建python文件自动添加日期作者等信息(步骤详解)
Feb 03 Python
Pycharm 如何一键加引号的方法步骤
Feb 05 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
第九节--绑定
2006/11/16 PHP
PHP+JS无限级可伸缩菜单详解(简单易懂)
2007/01/02 PHP
防止用户利用PHP代码DOS造成用光网络带宽
2011/03/01 PHP
PHP简单实现HTTP和HTTPS跨域共享session解决办法
2015/05/27 PHP
php计数排序算法的实现代码(附四个实例代码)
2020/03/31 PHP
JavaScript 基础知识 被自己遗忘的
2009/10/15 Javascript
JQuery select标签操作代码段
2010/05/16 Javascript
JavaScript中使用sencha gridpanel 编辑单元格、改变单元格颜色
2015/11/26 Javascript
jQuery插件pagination实现无刷新分页
2016/05/21 Javascript
jQuery四种选择器使用及示例
2016/06/05 Javascript
整理一下常见的IE错误
2016/11/18 Javascript
ES6入门教程之let和const命令详解
2017/05/17 Javascript
Angular 2 ngForm中的ngModel、[ngModel]和[(ngModel)]的写法
2017/06/29 Javascript
Vue-Cli中自定义过滤器的实现代码
2017/08/12 Javascript
js移动端图片压缩上传功能
2020/08/18 Javascript
Echarts动态加载多条折线图的实现代码
2019/05/24 Javascript
简单学习5种处理Vue.js异常的方法
2019/06/17 Javascript
layui switch 开关监听 弹出确定状态转换的例子
2019/09/21 Javascript
使用Python操作MySQL的一些基本方法
2015/08/16 Python
基于Python 的进程管理工具supervisor使用指南
2016/09/18 Python
使用python3构建文件传输的方法
2019/02/13 Python
详解如何减少python内存的消耗
2019/08/09 Python
python迭代器常见用法实例分析
2019/11/22 Python
python输出pdf文档的实例
2020/02/13 Python
Python requests模块基础使用方法实例及高级应用(自动登陆,抓取网页源码)实例详解
2020/02/14 Python
python 实用工具状态机transitions
2020/11/21 Python
华美博弈C/VC工程师笔试试题
2012/07/16 面试题
String s = new String(“xyz”);创建了几个String Object?
2015/08/05 面试题
2014年入党积极分子党课学习心得体会模板
2014/04/03 职场文书
环保倡议书50字
2014/05/15 职场文书
学校推普周活动总结
2015/05/07 职场文书
2015年底工作总结范文
2015/05/15 职场文书
食堂管理制度范本
2015/08/04 职场文书
因个人工作失误检讨书
2019/06/21 职场文书
五年级作文之劳动作文
2019/11/12 职场文书
nginx反向代理配置去除前缀案例教程
2021/07/26 Servers