import语句写烦了,怎么办?
每次写数据相关的代码时都会习惯性地先写一堆import语句,不管用得到用不到,先在文首默一遍再说。
或者:
❞
虽说Ctrl+C和Ctrl+V也很方便,但是每次都要先“抄一次”也很烦。
那么有没有什么好的解决办法?
Python有一个模块能解决这个问题,无论要导入多少模块,只要使用一行import语句就能完成所有的模块的导入。
而且支持像import numpy as np
这样的别名操作。
下面我们花三分钟学习下如何使用它。
懒人专用 -- pyforest模块
安装
pip install pyforest
使用
装好该模块之后,我们可以在import语句中直接使用它:
from pyforest import *
x = np.empty([3,2], dtype = int)
print (x)
然后,发现我们竟然没有导入numpy模块竟然也能成功运行这段代码!!
是不是很神奇?
再试试别的模块:
from pyforest import *
x = np.arange(1,11)
y = 2 * x + 5
plt.title("Matplotlib demo")
plt.xlabel("x axis caption")
plt.ylabel("y axis caption")
plt.plot(x,y)
plt.show()
也是成功运行的:
剖析原理
我顺着pyforest摸入到了模块内部:
我发现了一个不得了的代码文件,里面大大小小写了百来个模块的名字:
我还发现一个叫LazyImport
的玩意,它能实现模块「懒导入」的操作。
❝懒导入:不用不导,用到才导。
❞
部分支持的模块
我大概数了下,大概支持了百来个模块的懒导入,你们如果有兴趣可以查看它的源码,看看是否能支持你代码模块的懒导入。
实现拓展
在测试的时候,我一时兴起写了一段使用requests模块的爬虫代码,很意外,竟然报错了!
编辑器也给出提示,requests这个模块未被定义。
我决定尝试去简单修改下pyforest模块中的源码,把requests也实现懒导入:
然后回到我的爬虫代码界面上,
发现warning提示消失了,尝试运行下代码:
能成功运行。
后记
pyforest模块虽然好用,如果不是懒癌重度患者,我还是不推荐使用用这种方式进行导包操作。
偶尔在小程序上偷个懒用用问题不大,但是在一些中大型项目中用了这个模块,估计会被...