2016-03-23 21 views
-3

benim programda ithalatta bir dizi bazı sorunlar yaşıyorum, main.py olarakİthalat sipariş 3

:

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

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

Alan, world.py dosyasında tanımlandı, ancak Area sınıfını dialogue.py'den kullanmaya çalıştığımda,

builtins.NameError: name 'Area' is not defined 
Ben world.py gelen diyalog sınıfını erişmeye çalıştığımda

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

için main.py ithalat sırasını değiştirirseniz

, bu

builtins.NameError: name 'Dialogue' is not defined 

ben sipariş düşündüm olsun ithalatın bir fark yaratmamalıydı? Tüm derslerime tüm dosyalarımdan nasıl erişebilirim?

+4

* olarak içe * (vahşi ithalat) kullanma

muhtemelen çok kötü bir fikir – Bharel

+0

sen * zorunluluk * erişim kesinlikle her şey ve Listeye istemiyorsanız olduğunu İhtiyacınız olan şeyleri, basitçe 'içe aktarma dünyasını' düşünebilir ve 'world.Area', vs. kullanabilirsiniz. Tıpkı 'ithalat *' ın kötü bir fikir olmanın epitopu gibidir. – jpmc26

+0

@Bharel ile aynı fikirdeyim. İthalat dünyasını vb. Denemelisiniz. Kodunuzu dünya, diyalog ve etkinlikten gönderebilir misiniz? –

cevap

0

sınıf Alan world.py tanımlanan, henüz dialogue.py gelen Alan sınıfını kullanmaya çalıştığınızda o

kodunuzu ithal ediyoruz yolu yanlıştır döndürür. Her iki modülden * ile içe aktarıyorsunuz; Bu, Python'u karıştırır çünkü her iki modülde de Area adı verilen bir sınıf vardır. Bunun yerine birçok modüllerden modüllerin içe

import dialogue 
import world 
import event 

d1 = world.Dialogue() 
d2 = dialogue.Dialogue()