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 相关文章推荐
python使用reportlab画图示例(含中文汉字)
Dec 03 Python
利用Python的装饰器解决Bottle框架中用户验证问题
Apr 24 Python
Python简单进程锁代码实例
Apr 27 Python
用实例解释Python中的继承和多态的概念
Apr 27 Python
Python使用cookielib模块操作cookie的实例教程
Jul 12 Python
Python实现利用163邮箱远程关电脑脚本
Feb 22 Python
用python实现将数组元素按从小到大的顺序排列方法
Jul 02 Python
Python检查图片是否损坏及图片类型是否正确过程详解
Sep 30 Python
Python 实现Numpy中找出array中最大值所对应的行和列
Nov 26 Python
python3.6.8 + pycharm + PyQt5 环境搭建的图文教程
Jun 11 Python
python爬取代理IP并进行有效的IP测试实现
Oct 09 Python
Python实现简单得递归下降Parser
May 02 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
PHP写的加密函数,支持私人密钥(详细介绍)
2013/06/09 PHP
php实现改变图片直接打开为下载的方法
2015/04/14 PHP
实例简介PHP的一些高级面向对象编程的特性
2015/11/27 PHP
php实现xml与json之间的相互转换功能实例
2016/07/07 PHP
php代码检查代理ip的有效性
2016/08/19 PHP
thinkPHP中钩子的两种配置调用方法详解
2016/11/11 PHP
php+ajax简单实现全选删除的方法
2016/12/06 PHP
PHP 出现 http500 错误的解决方法
2021/03/09 PHP
js类中获取外部函数名的方法
2007/08/19 Javascript
jquery 框架使用教程 AJAX篇
2009/10/11 Javascript
jQuery 中使用JSON的实现代码
2011/12/01 Javascript
基于jQuery的倒计时实现代码
2012/05/30 Javascript
Javascript判断对象是否相等实现代码
2013/03/18 Javascript
JavaScript使用focus()设置焦点失败的解决方法
2014/09/03 Javascript
Javascript限制网页只能在微信内置浏览器中访问
2014/11/09 Javascript
Javascript实现快速排序(Quicksort)的算法详解
2015/09/06 Javascript
iscroll实现下拉刷新功能
2017/07/18 Javascript
node的process以及child_process模块学习笔记
2018/03/06 Javascript
微信小程序实现左右列表联动
2020/05/19 Javascript
详解一个小实例理解js原型和继承
2019/04/24 Javascript
layui 弹出层值回传解决方式
2019/11/14 Javascript
[01:21]DOTA2周边文化主题展 神秘商店火热开售
2017/07/30 DOTA
[49:08]Secret vs VP 2018国际邀请赛小组赛BO2 第一场 8.17
2018/08/20 DOTA
Python利用pyHook实现监听用户鼠标与键盘事件
2014/08/21 Python
python中__slots__用法实例
2015/06/04 Python
python 全局变量的import机制介绍
2017/09/07 Python
python3利用tcp实现文件夹远程传输
2018/07/28 Python
pycharm部署、配置anaconda环境的教程
2020/03/24 Python
keras 多gpu并行运行案例
2020/06/10 Python
CSS3中currentColor关键字的妙用
2016/02/27 HTML / CSS
纯CSS3+DIV实现小三角形边框效果的示例代码
2020/08/03 HTML / CSS
美国机场停车位预订:About Airport Parking
2018/03/26 全球购物
巡警年度自我鉴定
2014/02/21 职场文书
设计顾问服务计划书
2014/05/04 职场文书
新年晚会主持词开场白
2015/05/28 职场文书
Android开发手册TextInputLayout样式使用示例
2022/06/10 Java/Android