Python中文
首页
教程
问答
标签
搜索
登录
注册
从一个模块中导入其名称的子模块
回答此问题可获得
20
贡献值,回答如果被采纳可获得
50
分。
<p>我在子模块<code>db.db_1</code>中有一个名为<code>prepared_db</code>的函数:</p> <pre><code>from spam import db submodule_name = "db_1" func_name = "prepare_db" func = ... </code></pre> <p>如何通过上面上下文中的子模块名和函数名来获取函数?在</p> <p><strong>更新</strong>:</p> <p>为了回应@histrio的回答,我可以验证他的代码是否适用于<code>os</code>模块。但在这种情况下它不起作用。创建示例:</p> ^{pr2}$ <p>现在,可以正常导入:</p> <pre><code>>>> from spam.db.db_1 import prepare_db >>> prepare_db() prepare_db func </code></pre> <p>但是如果你动态地这样做,我会得到一个错误:</p> <pre><code>>>> getattr(getattr(db, submodule_name), func_name) --------------------------------------------------------------------------- AttributeError Traceback (most recent call last) <ipython-input-9-1b6aa1216551> in <module>() ----> 1 getattr(getattr(db, submodule_name), func_name) AttributeError: module 'spam.db.db_1' has no attribute 'prepared_db' </code></pre>
0 条评论
分类:
Python问答
请先
登录
后评论
默认排序
时间排序
1 个回答
匿名
1天前
擅长:python、mysql、java
<p>我想我已经想好了,您需要将函数添加到<code>__init__.py</code>文件中的<code>__all__</code>变量中,这样就可以大致如下:</p> <pre><code>from .db_1 import prepare_db __all__ = ['prepare_db'] </code></pre> <p>在那之后,它应该可以正常工作了。在</p>
请先
登录
后评论
针对此问题:
更多的回答
关注
89
关注
收藏
1
收藏,
216
浏览
网友 提问于 2天前
相关Python问题
文本导入时标题行中的特殊字符
7 回答
文本小部件:在没有输入时更新并在循环后保持空闲
6 回答
文本小部件tkin
9 回答
文本小部件tkinter中的标签更改或文本外观更改是否有撤消功能?
8 回答
文本小部件tkinter复制图像选项
5 回答
文本小部件上的Python Tkinter ttk滚动条未缩放
3 回答
文本小部件上的滚动条可能需要根据制表符ord显示前进行滚动
1 回答
文本小部件不显示lis中的内容
2 回答
文本小部件不显示Unicode字符
10 回答
文本小部件中写入的行间距
8 回答
文本小部件中的文本作为变量
3 回答
文本小部件中的滚动条仅显示在底部
5 回答
文本小部件中的选项卡键空间计数
5 回答
文本小部件作为Lis
8 回答
文本小部件在主框架中扩展列宽
1 回答
文本小部件未使用删除功能清除
3 回答
文本小部件滚动动画(Tkinter、Python)
2 回答
文本居中。格式正确吗?
10 回答
文本差分算法
7 回答
文本已知时音频文件中的单词索引
5 回答