1. 直接 import
人尽皆知的方法,直接导入即可
>>> import os
>>> os.getcwd()
'/home/wangbm'复制代码
与此类似的还有,不再细讲
import ...
import ... as ...
from ... import ...
from ... import ... as ...复制代码
一般情况下,使用 import
语句导入模块已经够用的。
但是在一些特殊场景中,可能还需要其他的导入方式。
下面我会一一地给你介绍。
2. 使用 _import_
__import__
函数可用于导入模块,import 语句也会调用函数。其定义为:
__import__(name[, globals[, locals[, fromlist[, level]]]])复制代码
参数介绍:
- name (required): 被加载 module 的名称
- globals (optional): 包含全局变量的字典,该选项很少使用,采用默认值 global()
- locals (optional): 包含局部变量的字典,内部标准实现未用到该变量,采用默认值 - local()
- fromlist (Optional): 被导入的 submodule 名称
- level (Optional): 导入路径选项,Python 2 中默认为 -1,表示同时支持 absolute import 和 relative import。Python 3 中默认为 0,表示仅支持 absolute import。如果大于 0,则表示相对导入的父目录的级数,即 1 类似于 '.',2 类似于 '..'。
使用示例如下:
>>> os = __import__('os')
>>> os.getcwd()
'/home/wangbm'复制代码
如果要实现 import xx as yy
的效果,只要修改左值即可
如下示例,等价于 import os as myos
:
>>> myos = __import__('os')
>>> myos.getcwd()
'/home/wangbm'复制代码
上面说过的 __import__
是一个内建函数,既然是内建函数的话,那么这个内建函数必将存在于 __buildins__
中,因此我们还可以这样导入 os 的模块:
>>> __builtins__.__dict__['