码迷,mamicode.com
首页 > 其他好文 > 详细

__import__简介

时间:2015-08-31 16:49:12      阅读:187      评论:0      收藏:0      [点我收藏+]

标签:

__import__()

    import 语句通过调用__import__()来完成工作,提供这个函数是为了让有特殊需要的用户覆盖他,实现自定义。__import__最大的好处就是可以使程序在runtime时动态加载一些模块,而不是在py文件的开头使用import来加载。
 

官方文档如下 

__import__(name[,globals[, locals[,fromlist[, level]]]])

Note

 

这个函数导入模块name;globals, locals 默认为globals(), locals();formlist给定了要导入的对象或者子模块的名字。level参数决定是使用相对路径还是绝对路径导入,默认值为-1,代表绝对和相对路径都可以。0值意味着仅仅接收绝对路径导入,正值代表对于调用__import__()的模块目录的父目录的数目。Positive values forlevel indicate the number of parent directories to search relative to the directory of the module calling__import__().

当name变量是package.module形式的时候,正常情况下仅仅顶层的包(第一个 . 前面的package)会被返回,而不是package.module。然而当fromlist参数非空时,模块package.module被返回。

可以看下面的例子:

 1 spam = __import__(spam, glocals(), locals()) 

名字为 spam 的模块被导入;

 1 spam = __import__(spam.ham, globals(), locals(), []) 

这里仍然导入的是 spam 模块,而不是 spam.ham;

如果想要导入spam.ham那么就需要制定后面的fromlist参数:

1 _temp = __import__(spam.ham, globals(), locals(), [eggs, sausage], -1)
2 eggs = _temp.eggs  
3 saus = _temp.sausage  

相当于;from spam.ham import eggs, sausage as saus

注意:这里__import__导入的不是spam.ham.eggs 和 spam.ham.sausage, 而是spam.ham, 必须经过后面两条赋值语句才可以等效于上面这种正常导入。

 

 

Changed in version 2.5: The level parameter was added.

Changed in version 2.5: Keyword support for parameters was added.



 

__import__简介

标签:

原文地址:http://www.cnblogs.com/arvinls/p/4772561.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!