栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

Python的__import__不能按预期工作

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Python的__import__不能按预期工作

从python文档上

__import__

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

当name变量的形式为package.module时,通常返回顶级包(名称直到第一个点),而不是按名称命名的模块。但是,当给出非空的fromlist参数时,将返回按名称命名的模块。这样做是为了与为不同种类的import语句生成的字节码兼容。使用“
import spam.ham.eggs”时,必须将顶级程序包垃圾邮件放置在导入名称空间中,但是当使用“ from spam.ham import
eggs”时,必须使用spam.ham子程序包来查找eggs变量。
。作为解决此问题的方法,请使用getattr()提取所需的组件。例如,您可以定义以下助手:


def my_import(name):    mod = __import__(name)    components = name.split('.')    for comp in components[1:]:        mod = getattr(mod, comp)    return mod

释义:

当您要求时

somepackage.somemodule
__import__
返回
somepackage.__init__.py
,通常为空。

somemodule
如果您提供,它将返回
fromlist
somemodule
想要的变量名列表,但实际上并未返回)

您也可以像我一样使用他们建议的功能。

注意:我问这个问题完全是想自己回答这个问题。我的代码中有一个大错误,并且由于错误诊断错误,我花了很长时间才弄清楚它,所以我认为我会帮助SO社区并把遇到的问题发布到这里。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/624697.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号