__import__(name[, globals[, locals[, fromlist[, level]]]]):
该函数由import语句调用。它可以被替换(通过导入__builtin__
模块并分配给__builtin __.__ import__
)以便改变import语句的语义,但是现在通常使用导入钩子更简单(参见PEP 302)。直接使用__import __()
是罕见的,除非您要导入名称仅在运行时已知的模块。
该函数导入模块名称,潜在地使用给定的全局变量和本地人来确定如何解释包上下文中的名称。 fromlist给出了应该从由name指定的模块导入的对象或子模块的名称。标准实现根本不使用其locals参数,并且仅使用其全局变量来确定import语句的包上下文。
level指定是使用绝对还是相对导入。默认值为-1,表示将尝试绝对和相对导入。 0表示仅执行绝对导入。级别的正值表示相对于调用__import __()
的模块的目录来搜索的父目录的数量。
当名称变量的形式为package.module
时,通常返回顶级包(名称直到第一个点),而不是以name命名的模块。但是,如果给出非空的fromlist参数,则返回名为name的模块。
test.py:
# -*- coding:utf-8 -*-
def hello_world():
print('hello_world!')
if __name__ == '__main__':
my_module = __import__('__import__module')
print(my_module)
print(type(my_module))
输出:
<module '__import__module' from 'C:\Users\rHotD\Documents\GitHub\fieldwork_test\2017-06-02\__import__module.py'>
<type 'module'>
Process finished with exit code 0