编程语言
首页 > 编程语言> > python-给定完整的模块路径,动态导入可调用对象吗?

python-给定完整的模块路径,动态导入可调用对象吗?

作者:互联网

>>> import_path('os.path.join')
<function join at 0x22d4050>

编写import_path的最简单方法是什么(在Python 2.6及更高版本中)?假设最后一个组件在模块/包中始终是可调用的.

解决方法:

这似乎是您想要的:

def import_path(name):
    modname, _, attr = name.rpartition('.')
    if not modname:
        # name was just a single module name
        return __import__(attr)
    m = __import__(modname, fromlist=[attr])
    return getattr(m, attr)

要使其与__import__不带关键字参数的Python 2.5及更早版本一起使用,您将需要使用:

m = __import__(modname, {}, globals(), [attr])

标签:import,module,introspection,python
来源: https://codeday.me/bug/20191106/2001510.html