前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >python笔记:一些常用的小trick(一)

python笔记:一些常用的小trick(一)

作者头像
codename_cys
发布2021-03-25 15:50:59
6970
发布2021-03-25 15:50:59
举报
文章被收录于专栏:我的充电站

1. 外部库函数的调用

假设你git clone了一个函数库,然后想要在某一段代码中调用其中的某一个函数,请问你要怎么做呢?

这里,我们来给出一个这类函数的调用小trick。

其实方法也比较简单,一种简单粗暴的方法就是把这个函数的路径加入到系统的python path中,但是这种操作是永续的,在更多情况下,我们只是想要临时在某些脚本中调用这个方法,在其他情况下,我们并不希望这个路径加入到我们的系统python path中。

因此,我们可以在程序中通过下述代码进行调用:

代码语言:javascript
复制
import sys

print(sys.path) # 打印python path,list格式,其元素即为库函数路径。

sys.append("your function file path") # 加入你的函数所在目录

执行上述操作之后,目标路径就被临时加入到python path中了,之后你就可以轻松的进行调用了。

需要注意的是,如果你是复写了已有的某个函数,那么你需要将你的路径insert到开头的位置,否则它不会读入你的函数,而是会读入之前已有的函数。

2. cache方法

cache方法也是python中常用的提高执行效率的常见方法,其主要思路为将函数与其输入保存到缓存中,当需要重复调用时,直接读取其之前执行的结果,而不需要再重新计算一边。

因此,这算是一种比较暴力的动态规划实现方法。但是,由于他是直接读取的上一次的执行结果,当不同时刻执行结果会不相同时,绝对不能使用cache,另外,由于需要将结果一直存储在缓存中,所以对于非频繁调用的密集计算型函数,也不建议使用cache。

下面,我们给出两种cache的实现方法:

更详细的使用方法可以参考两者的官方说明文档,这里不再展开。

3. 进度条显示工具tqdm

tqdm函数库为python中常用的一种进度条绘制方法。

其参考用法如下:

代码语言:javascript
复制
from tqdm import tqdm

ans = 0
with tqdm(range(1, 101), ncols=100) as t:
    for i in t:
        ans += i
print(ans)

其中,tqdm的输入为一个list或者为一个迭代器,且只有在输入为list等已知总长度的情况下,可以正确显示进度条,否则只会通过数字显示已执行进度。

而tqdm的执行逻辑事实上是在每一次打印之后将当前位置指针重新退行,然后再上一行中覆盖打印内容。因此,如果进度条长度过长,超过单行总长度或者在训练中打印了新的内容时,回溯上一行就会失败,无法回到上一次进度条的开始位置,故而导致进度条显示异常。

因此,我个人建议使用ncols参数人为地去指定一下进度条的总长度。

另外,需要注意的是,我们上面使用了with的写法,这是一种比较推荐的写法,因为tqdm函数如果遇到强制终止程序等情况时,时常会出现一些bug,无法正常地完成回溯,而使用with方法可以很好的处理这部分的异常。

更详细的tqdm说明可以参考说明文档:

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020/06/30 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1. 外部库函数的调用
  • 2. cache方法
  • 3. 进度条显示工具tqdm
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档