请教:from matplotlib import pyplot as plt与import...as的区别
两种Matplotlib导入语句的差异与
from关键字的作用 这两行代码最终都能让你用plt调用matplotlib.pyplot的功能,但背后的导入逻辑和对命名空间的影响有区别,核心差异就在于from关键字的作用:
from关键字的核心作用
from X import Y的本质是直接把Y(可以是子模块、类、函数、变量)从X的命名空间里“提取”出来,放到当前代码的全局命名空间中,不需要再通过X这个“前缀”来间接访问Y。
两种导入语句的具体差异
1. 命名空间的不同
from matplotlib import pyplot as plt:
执行后,当前代码的命名空间里只有plt这个别名(指向matplotlib.pyplot模块),matplotlib父包并没有被加入当前命名空间。如果之后要用到matplotlib里的其他内容(比如配置项matplotlib.rcParams),得单独再导入matplotlib或者用from matplotlib import rcParams。import matplotlib.pyplot as plt:
执行后,当前命名空间里不仅有plt,还会加载matplotlib父包对象。之后如果要调用matplotlib的其他子模块或属性,直接写matplotlib.colors、matplotlib.rcParams就行,不用额外导入父包。
2. 实际使用的差异
日常调用pyplot的功能时,两种写法完全等价——不管用哪种,plt.plot()、plt.show()这类调用都能正常工作。区别只体现在后续是否需要用到matplotlib包的其他部分。
3. 性能与加载逻辑
两种方式在加载速度上几乎没有区别,因为最终都需要完整加载matplotlib包和pyplot模块,只是命名空间的引用方式不同。
总结
- 如果你的代码只用到
pyplot模块,两种写法随便选,from matplotlib import pyplot as plt更简洁; - 如果之后还要用到
matplotlib的其他功能,import matplotlib.pyplot as plt会更方便,不用重复导入父包。
内容的提问来源于stack exchange,提问作者TungMuzan
相关产品推荐
相关产品推荐

