1. list切片的技巧 somelist[start:end:stride]
2. 多使用列表表达式
3. 数据量大的时候尽量使用生成器表达式代替列表表达式
4. 使用enumerate代替range
5. 合理利用try/except/else/finally
6. 线程方面的---使用concurrent.futures,实现并行计算
# 第一种的结果: 1.4s
# 第二种的结果: 0.4s
# 结果的提升是肯定有的,但是和网络情况有关系。
# 关于导入的包 concurrent.future
# 对于这个包里面的ThreadPoolExecutor和multiprocessing的Pool对比,作用实际上差不多,具体时间差异我还没怎么测试过.
# 但是如果你认真看源码的话会发现,实际上future的包在process的那一块也是调用multiprocessing的
# 按照源码的意思就是在子线程中运行多个python的解释器,从而实现并行.
# 但是一般的代码或者多线程爬虫上基本体会不出,因为爬虫的核心还是在网络速度上,而一般的代码也没必要
# 除非计算矩阵或者其他的需要巨大计算量的时候再考虑使用.
7. 与分析方面有关的---重视精度时使用decimal
8. 协作开发的时候尽量不要写import *
你的代码在导包的时候写了import *,你自己开发是很明白有什么方法的.
但是在协作开发或者开源项目的时候尽量避免.
因为其他开发者并不知道里面的方法是干啥的.
9. 配置文件独立化
# 例如一些数据库的配置,selenium的webdriver的配置,甚至开发的模式配置可以通过一些json格式的配置文件进行维护.
# 好处1: 在于这样管理项目不用"东奔西跑",为了一个全局变量找半天
# 好处2: 在协同开发的时候,可以不用变动的代码的情况下,根据自己的开发环境确定一些全局配置
# 缺点的话,实际上也算不上缺点.就是每次都要读取一次配置文件,代码的速度会减慢一点点,但是并不碍事.
作者:NullSpider
源自:https://juejin.im/post/5a17d1a6f265da432d27c871
声明:文章著作权归作者所有,如有侵权,请联系小编删除