python中的import、from import及import as的区别解析

首先介绍一下import和include的区别或者说import相对include的好处:

import导入的内容只会被包含一次,在引入之前会检测是否已经存在该模块,不存在才会被引入,而include是不会做判断的。使用import在递归包含的时候不会出错,不会引起交叉编译的问题。此外,使用include引入头文件对其引入顺序也有一定的要求。

import

import是python提供的用于导入模块的机制,导入是的整个模块的内容。模块可以是py、pyc、pyd,可以是系统自带的,也可以是自定义的。使用语法:#import os

python中所有加载到内存的模块都存放到sys.modules中,在引入一个模块之前,会先在列表中查找是否已经加载了该模块,如果已经加载则只用将模块的名字加入到正在调用import模块的local名字空间中;没有加载则将该模块载入到内存,并存放到sys.modules中。

from import

用于导入一个模块中的某一个部分,比如一个函数或者一个类等。使用语法:from os import path 表示引入os模块中的path

import as

用于引入一个模块的同时为该模块取一个别名。使用语法:import multiprocessing as mp 表示引入multiprocessing模块并取别名为mp,在该文件的后续调用中mp就相当于是multiprocessing。

Python中import的as语法

在Python中,如果import的语句比较长,导致后续引用不方便,可以使用as语法,比如:

import dir1.dir2.mod

那么,后续对mod的引用,都必须是dir1.dir2.mod

dir1.dir2.mod.X

那么,为了简化输入,可以使用as语法:

import dir1.dir2.mod as m

那么,后续对mod的引用,可以直接使用m

m. X

需要注意的是,使用as语法之后,只能通过as后面名字来访问导入的moudle

import mod as m
m.X # OK
mod.X # Error

下面提供as的完整语法格式,import和from都支持:

import modulename as name # 只能通过name来引用
from modulename import attrname as name # 只能通过name来引用

原文地址:https://blog.csdn.net/guaiguaihenguai/article/details/94488238