2016-11-27 9 views
0

私はこれを行う方法を探していましたが、解決策があるかどうかはわかりませんでした。私は__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

@AndrasDeakこれを行う方法があるかどうか不思議ですが、私が "this"を参照しているのはコード '__import__(itertools、list)'です。そのようなものを返すときに何かを実装することが可能ならば。 –

+2

なぜそれを正しくインポートすることと違うのでしょうか?非常に読みにくいことを除いて。 –

答えて

1

はあなたの例では、ダイナミックインポートを達成する方法である:

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

NB:__import__状態のためのpythonのドキュメントこと:これはない高度な機能です

毎日のPythonプログラミングに必要

多くのPythonistas (元の例のように)明示的なインポートを希望しており、おそらく__import__の過剰使用をコード臭のビットとみなすでしょう。

+0

私はそれを使用しないだろうと思っています。そのようなことを達成することが可能かどうかを知りたかったのです。ありがとう。 –

関連する問題