2011-12-05 12 views
1

パッケージから1つのモジュールを除くすべてをインポートできますか?Python:インポート例外

私は自分のクラスで使用する特定のライブラリからたくさんのモジュールを必要としますが、必要なモジュールの1つに同じモジュール名が使用されているようです。

設定操作と交差を使用する必要がありますが、私のクラスからそのライブラリをインポートすると、そのためにエラーが発生します。

私はそれをたくさん使っているので、別にインポートしたり、すべてのメソッドの前に名前を付けたりしたくありませんでした。

setのような特定のメソッド以外のすべてをPythonがインポートする方法はありますか? setの部分を後でもう一度インポートすることはできますか?

+0

'from〜import *'は有効な構文ではありません。あなたが使用している*モジュールとそれをインポートするために使用しようとしている* exact *ステートメントを言えば、私たちにすべてのことを推測させるのではなく、役立つでしょう。 – kindall

+0

私はちょっと混乱しています、あなたは 'set'を定義するモジュールを持っていますか?サンプルコードを表示できますか? – birryree

+0

私は '' 'set''関数を宣言することはできないと思います...それは?インポートステートメントを共有できますか? – FakeRainBrigand

答えて

5

いいえ、from ... import * except blah, bleh, bluhという用語はありません。あなたはそれをサポートするために、独自のインポート機能を書き込み、またはのような何かを行うことができ、次のいずれかビルトインsetので、あなたは再びそれを使用することができますシャドウを停止します

from xyz import * 
del set 

を。そして、あなたはあなたが行うことができますxyz.set機能が必要な場合:

from xyz import set as xyzset 

を注:from ... import *は良い習慣通常ではなく、あなたがこの方法を使用しているモジュールは、それをサポートすることを確認する必要があり - そうでない場合明白なことに、この方法で使用するように設計されているとしたら、後で奇妙な問題をデバッグするのを楽しむまでしてはいけません。

+0

ああ..これはうまくいった!どうもありがとう!! del:Dの使用については考えなかった。from ... import *の部分については覚えておきます。ありがとうございました! – Dennis

0

は、私はあなたがなりたいものとします

from thing import a, b, c, d, e, f 

thingからa, b, c, d, e, fをインポートするであろう。

私の知る限り、

import thing 
thing.a 

は、最初の場所に存在する理由from thing import all but a, b, c
のthatsを行うための方法はありません。

0

実際に何が起こっているのかよくわからない(実際のモジュール名が役立つかもしれない)。しかし、一般的にはfrom ... import *を実行することは悪い習慣とみなされます。なぜなら、特定のものがどこから来ているのかは明らかではないからです。代わりに、from ... import thingA, thingB, thingCを実行します。

また、import ... as shortnameを実行し、方法をshortname.whatever(ここではshortnameが明らかに非常に短いものになる可能性があります)と指定することもできます。