返回时在函数中导入模块

时间:2016-11-27 01:54:34

标签: python python-import

我正在搜索如何执行此操作,但我找不到是否有解决方案。我以为是__import__?但我仍然无法弄明白。 例如:

>>> def combs(s = []):
...     from itertools import combinations
...     return [list(combinations(s, 2))]
...
>>> lst = ["A","B",'C']
>>> print(combs(lst))
[[('A', 'B'), ('A', 'C'), ('B', 'C')]]
>>>

我很好奇是否可以做到这样的事情?

def combs(s = []):
    return [list(combinations(s, 2))]__import__(itertools, list)

1 个答案:

答案 0 :(得分:1)

以下是如何在示例中实现动态导入:

def combs(s = []):
    return list(__import__('itertools').combinations(s, 2))

注意:__import__的python文档声明:

  

这是日常Python编程中不需要的高级函数

许多Pythonist会更喜欢显式导入(如原始示例中所示),并且可能会考虑过度使用__import__来获得一些代码味道。