Python3 自动条件导入?

Python 3 automatic conditional import?

有什么好的方法可以根据某个变量值导入不同的模块吗? 我的例子:

我有一个包含不同模块的文件夹:

在其他一些 python 文件中,我想根据某些配置值导入 module_a 或 module_b:

if configVal == 'a':
    import module_a
elif configVal == 'b':
    import module_b

有什么方法可以避免使用 if-elif 吗?所以不知何故自动?

赞:

@conditionalImport(configVal)
import module_

或者聪明的东西?

正常使用if/try,除了import

例如

import sys
if sys.version_info > (2, 7):
    import simplejson as json
else:
    import json

事实上,我们经常使用if elsetry catch语句来编写Python2/3兼容代码或避免import errors。这种情况很常见。

if sys.version_info[0] > 2:
    xrange = range

或者使用try catch来提升exception.After个已经重命名的模块,你可以将它们作为新名称导入。

try:
    import mod
except ImportError:
    import somemodule as mod

但是使用外部脚本制作脚本是一种不好的做法 work.It 依赖外部脚本导入模块在 Python 中是不常见的。

您可以使用 __import__ 内置函数将模块名称声明为字符串。

这样你就可以对模块名进行正常的字符串操作了:

module = __import__("module_{}".format(configVal))