python - 从字符串动态导入文件中的方法

标签 python dynamic import dynamic-import

我有一个字符串,比如:abc.def.ghi.jkl.myfile.mymethod。如何动态导入 mymethod

这是我的做法:

def get_method_from_file(full_path):
    if len(full_path) == 1:
        return map(__import__,[full_path[0]])[0]
    return getattr(get_method_from_file(full_path[:-1]),full_path[-1])


if __name__=='__main__':
    print get_method_from_file('abc.def.ghi.jkl.myfile.mymethod'.split('.'))

我想知道是否需要导入单个模块。

编辑:我使用的是 Python 版本 2.6.5。

最佳答案

从 Python 2.7 开始,您可以使用 importlib.import_module()功能。您可以使用以下代码导入模块并访问其中定义的对象:

from importlib import import_module

p, m = name.rsplit('.', 1)

mod = import_module(p)
met = getattr(mod, m)

met()

关于python - 从字符串动态导入文件中的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8790003/

相关文章:

python - 无法在 django 中导入表单

python - 如何根据给定字符和长度生成排列列表?

c# - 通过套接字编程在 C# 中动态字节数组 [List<byte> 不起作用]

r - 快速读取非常大的表作为数据框

javascript - 将站点导航 HTML 导入所有页面的最简单方法是什么?

c - 如何在C中动态分配矩阵?

python - 在数据框中添加两个嵌套 for 循环的值

Python:比较两个整数列表的最有效方法

python - 复制模型的内容

python - 动态变量创建