用法:
__import__(name, globals=None, locals=None, fromlist=(), level=0)
注意
与
importlib.import_module()
不同,这是日常 Python 编程中不需要的高级函数。该函数由
import
陈述。它可以被替换(通过导入builtins
模块并分配给builtins.__import__
) 为了改变语义import
声明,但这样做是强烈不鼓励,因为使用导入钩子通常更简单(请参阅PEP 302) 来实现相同的目标,并且不会导致假定默认导入实现正在使用的代码出现问题。直接使用import__也不鼓励赞成importlib.import_module()
.该函数导入模块
name
,可能使用给定的globals
和locals
来确定如何解释包上下文中的名称。fromlist
给出了应该从name
给出的模块导入的对象或子模块的名称。标准实现根本不使用其locals
参数,而仅使用其globals
来确定import
语句的包上下文。level
指定是使用绝对导入还是相对导入。0
(默认)意味着只执行绝对导入。正值level
表示相对于调用模块的目录要搜索的父目录的数量import__(参考PEP 328详情)。当
name
变量的形式为package.module
时,通常会返回顶级包(直到第一个点的名称),not
以name
命名的模块。但是,当给定一个非空的fromlist
参数时,将返回以name
命名的模块。例如,语句
import spam
生成的字节码类似于以下代码:spam = __import__('spam', globals(), locals(), [], 0)
语句
import spam.ham
导致此调用:spam = __import__('spam.ham', globals(), locals(), [], 0)
请注意
__import__()
如何在此处返回顶级模块,因为这是由import
语句绑定到名称的对象。另一方面,语句
from spam.ham import eggs, sausage as saus
导致_temp = __import__('spam.ham', globals(), locals(), ['eggs', 'sausage'], 0) eggs = _temp.eggs saus = _temp.sausage
在这里,
spam.ham
模块是从__import__()
返回的。从此对象中检索要导入的名称并将其分配给它们各自的名称。如果您只想按名称导入模块(可能在包中),请使用
importlib.import_module()
。在 3.3 版中更改:负值
level
不再支持(这也将默认值更改为 0)。在 3.9 版中更改:当命令行选项
-E
或者-I
正在使用,环境变量PYTHONCASEOK
现在被忽略了。
相关用法
- Python importlib.reload用法及代码示例
- Python importlib.util.LazyLoader.factory用法及代码示例
- Python imp.reload用法及代码示例
- Python OpenCV imdecode()用法及代码示例
- Python imaplib.IMAP4.search用法及代码示例
- Python image转binary用法及代码示例
- Python imaplib.IMAP4用法及代码示例
- Python imaplib.IMAP4.store用法及代码示例
- Python itertools.takewhile用法及代码示例
- Python string isalnum()用法及代码示例
- Python id()用法及代码示例
- Python ipaddress.collapse_addresses用法及代码示例
- Python ipaddress.IPv4Address.reverse_pointer用法及代码示例
- Python io.text_encoding用法及代码示例
- Python string isidentifier()用法及代码示例
- Python numpy irr用法及代码示例
- Python ipaddress.IPv4Address.__format__用法及代码示例
- Python calendar isleap()用法及代码示例
- Python itertools.compress用法及代码示例
- Python math isclose()用法及代码示例
注:本文由纯净天空筛选整理自python.org大神的英文原创作品 import__。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。