Python 3自动有条件导入



是否有任何基于某些变量值导入不同模块的好方法?我的示例:

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

  • module_a.py
  • module_b.py

以及在其他一些python文件中,我想基于某些配置值导入module_a或module_b:

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

是否有某种方法可以避免使用IF-ELIFS?所以以某种方式自动?

喜欢:

@conditionalImport(configVal)
import module_

或聪明的东西?

您可以使用__import__内置素来将模块名称陈述为字符串。

以这种方式,您可以在模块名称上执行普通字符串操作:

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

实际上,我们经常使用 if elsetry catch语句编写python2/3兼容代码或避免使用import errors。这很常见。

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

或使用try catch提高异常。在已重命名的模块后,您可以将它们导入新名称。

try:
    import mod
except ImportError:
    import somemodule as mod

,但是使用外部脚本使您的脚本起作用是不好的。

如果/尝试使用是正常的,除了import

例如

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

相关内容

  • 没有找到相关文章

最新更新