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

如何导入所有子模块?

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

如何导入所有子模块?

编辑: 这是一种在运行时递归导入所有内容的方法…

__init__.py
顶级软件包目录中的内容)

import pkgutil__all__ = []for loader, module_name, is_pkg in  pkgutil.walk_packages(__path__):    __all__.append(module_name)    _module = loader.find_module(module_name).load_module(module_name)    globals()[module_name] = _module

我不在

__import__(__path__+'.'+module_name)
这里使用,因为使用它正确地递归导入软件包很困难。但是,如果您没有嵌套的子软件包,并且想避免使用
globals()[module_name]
,那是这样做的一种方法。

可能有更好的方法,但是无论如何,这是我能做的最好的方法。

原始答案 (对于上下文,请完全忽略。我最初误解了这个问题):

scripts/__init__.py
长什么样 应该是这样的:

import script1import script2import script3__all__ = ['script1', 'script2', 'script3']

您甚至可以不定义进行操作

__all__
,但是即使您定义了内容,也可以使用pydoc(如果没有其他功能)则可以更干净地工作,即使它只是您导入的内容的列表也是如此。



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

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

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