没有的功能
from whatever import *。实际上,也不存在任何功能
import whatever!当你做
mod = __import__(...)
该
__import__功能仅负责部分工作。它为您提供了一个模块对象,但是您必须将该模块对象分别分配给变量。没有函数可以导入模块 并将其
分配给变量
import whatever。
在中
from whatever import *,有两个部分:
- 准备模块对象
whatever
- 分配变量
“准备模块对象”部分与中的几乎相同
importwhatever,并且可以由相同的函数处理
__import__。两者之间有一个细微的差异,
import*它将加载软件包
__all__列表中所有尚未加载的子模块。
__import__如果您提供,将为您处理
fromlist=['*']:
module = __import__('whatever', fromlist=['*'])
分配名称的部分是发生较大差异的地方,同样,您必须自己处理。只要您处于全球范围内,这就非常简单:
if hasattr(module, '__all__'): all_names = module.__all__else: all_names = [name for name in dir(module) if not name.startswith('_')]globals().update({name: getattr(module, name) for name in all_names})
函数作用域不支持分配在运行时确定的变量。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)