Python中import、from import与import as的区别详解
本文详细解析Python中三种模块导入方式的区别。import导入整个模块并检查sys.modules避免重复加载;from import用于提取模块内特定成员;import as允许为长模块路径设置别名以简化调用。文章通过具体语法示例说明各用法的适用场景及注意事项。
首先说明import与C/C++中include指令的主要区别,重点在于import机制带来的优势。
import机制具有防重入特性:在导入前会检测模块是否已存在于内存中,若未加载则执行引入,若已存在则直接复用。相比之下,include指令不进行此类判断。这种机制确保了在递归包含场景下不会引发错误,也避免了交叉编译可能产生的问题。此外,include对头文件的引入顺序有严格要求,而import则无此限制。
import语句
import是Python内置的模块导入机制,用于加载整个模块的内容。模块文件扩展名可以是.py、.pyc或.pyd,既包含系统内置模块,也支持用户自定义模块。基本语法示例如下:import os
Python将所有已加载到内存的模块信息存储在sys.modules字典中。当执行导入操作时,系统会首先查询该字典以确认模块是否已加载。如果模块已存在,系统仅将该模块的名称添加到当前调用import语句的局部命名空间中;如果模块尚未加载,系统会将其载入内存,并将其注册到sys.modules中以便后续复用。
from ... import语句
该语法用于从指定模块中导入特定的子组件,例如某个函数或类。示例语法:from os import path,这表示仅导入os模块中的path部分,而非整个os模块。
import ... as语句
该语法用于在导入模块的同时为其指定一个别名。示例语法:import multiprocessing as mp,这表示导入multiprocessing模块并将其重命名为mp。在后续代码中,使用mp即可等效调用multiprocessing模块的功能。
Python中import的as语法应用
当import语句中的模块路径较长,导致后续代码引用繁琐时,可以使用as语法进行简化。例如原始导入语句如下:
import dir1.dir2.mod此时,后续对模块中成员的引用必须使用完整路径,如dir1.dir2.mod或dir1.dir2.mod.X。为了简化输入过程,可以引入as语法进行重命名。
import dir1.dir2.mod as m使用as语法后,后续对模块成员的引用可以直接简化为m或m.X,从而提升代码可读性。
需要注意的是,一旦使用了as语法指定别名,后续访问该模块时只能通过别名进行引用,原始模块名将不再直接可用。
import mod as m
m.X # OK
mod.X # Error下面提供as语法的完整格式,该语法同时适用于import和from import语句:
import modulename as name # 只能通过name来引用
from modulename import attrname as name # 只能通过name来引用至此,关于Python中import、from import及import as区别解析的内容介绍完毕。如需了解更多相关Python导入知识,建议查阅本站往期文章或继续浏览后续内容,感谢支持。
本站声明
本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。













