35

Ruby では、「require」(Python では「import」) という単語を何度も繰り返す代わりに、

%w{lib1 lib2 lib3 lib4 lib5}.each { |x| require x }

そのため、一連の「libs」と「require」(インポート) のそれぞれを反復処理します。今、私は Python スクリプトを書いていて、そのようなことをしたいと思っています。方法はありますか、またはそれらすべてに対して「インポート」を記述する必要がありますか。

単純な「翻訳」は、次のコードのようなものになります。とにかく、Python は文字列として名前が付けられたライブラリをインポートしないため、機能しません。

requirements = [lib1, lib2, lib3, lib4, lib5]
for lib in requirements:
    import lib

前もって感謝します

4

7 に答える 7

66

既知のモジュールの場合は、コンマで区切ってください:

import lib1, lib2, lib3, lib4, lib5

動的変数に基づいてプログラムでインポートする必要がある場合、ルビの直訳は次のようになります。

modnames = "lib1 lib2 lib3 lib4 lib5".split()
for lib in modnames:
    globals()[lib] = __import__(lib)

あなたの例ではこれは必要ありませんが。

于 2010-07-15T22:39:02.883 に答える
26

これを試して:

import lib1, lib2, lib3, lib4, lib5

次のように、この方法でインポートされた名前を変更することもできます。

import lib1 as l1, lib2 as l2, lib3, lib4 as l4, lib5
于 2010-07-15T22:35:44.457 に答える
8

import lib1, lib2, lib3, lib4, lib5

于 2010-07-15T22:31:14.400 に答える
4

関数を使用して、モジュール名を含む文字列からインポートできます__import__

requirements = [lib1, lib2, lib3, lib4, lib5]
for lib in requirements:
    x = __import__(lib)
于 2010-07-15T22:36:44.543 に答える