1

のようなモジュールがある場合module、それをバイパスして、モジュールを使用せずに内部で利用可能な機能を使用できますか?

モジュールをインポートしましたが、コンパイラはfunction. 私はまだ使用する必要がありますmodule.function()

もっと多くの関数があるので、それらを1つずつ再定義したくはありませんがmodule、可能であれば入力を避けてください。

4

1 に答える 1

6

Python でのインポートは、名前空間に何かを追加するだけです。import fooインポートされた名前を修飾する方法は、との違いfrom foo import barです。

最初のケースでは、モジュール名のみをインポートします。fooそれが、その中の何かに到達する方法です。これが、実行する必要がある理由ですfoo.bar()2 番目のケースでは、明示的にのみ をインポートし、次のようにbar呼び出すことができますbar()

from foo import *すべてのインポート可能な名前 (特別な変数で定義されたもの__all__) を現在の名前空間にインポートします。これは機能しますが、既存の名前を誤って上書きしてしまう可能性があるため、お勧めできません。

foo = 42
from bar import * # bar contains a `foo`
print foo # whatever is from `bar`

ベスト プラクティスは、必要なものをインポートすることです。

from foo import a,b,c,d,e,f,g

または、名前のエイリアスを作成できます

import foo as imported_foo

結論 - 避けるようにしてくださいfrom foo import *

于 2013-03-17T14:19:00.017 に答える