2016-03-23 8 views
-3

私は私のプログラムでは、輸入の数といくつかの問題を抱えている、main.pyでインポート順3

from world import * 
from event import * 
:dialogue.pyで

from world import * 
from dialogue import * 
from event import * 

Areaクラスはworld.pyで定義されていますが、dialogue.pyからAreaクラスを使用しようとすると、

builtins.NameError: name 'Area' is not defined 
が返されます

私はworld.pyから対話クラスにアクセスしようとすると、私はこの

builtins.NameError: name 'Dialogue' is not defined 

を取得

from dialogue import * 
from world import * 
from event import * 

にmain.pyで輸入の順序を変更した場合、私は順序を考えました輸入の違いがあってはならないでしょうか?すべてのファイルからすべてのクラスにアクセスするにはどうすればよいですか?

+4

*としてインポート*(野生のインポート)を使用しての

は、おそらく非常に悪い考え – Bharel

+0

あなたが*必須*アクセス絶対にすべてのものと一覧表示したくない場合であります必要なものは、単純に '世界を輸入する 'と考えることができ、' world.Area'などを使うことができます。@Bharelそれについては "おそらく"はありません。それは、「輸入*」の縮図は悪い考えです。 – jpmc26

+0

私は@Bharelに同意します。輸入世界などを試してみるべきです。世界、会話、出来事からコードを投稿できますか? –

答えて

0

クラスのエリアはあなたのコードをインポートする方法が間違っているworld.pyで定義されて、まだ私はdialogue.pyからAreaクラスを使用しようとすると、それは

を返しています。両方のモジュールから、*でインポートしています。両方のモジュールにAreaというクラスがあるので、これはPythonを混乱させます。代わりに、多くのモジュールからモジュールをインポート

import dialogue 
import world 
import event 

d1 = world.Dialogue() 
d2 = dialogue.Dialogue() 
関連する問題