2016-03-23 2 views
-3

У меня несколько вопросов, с количеством импорта в моей программе,Импорт порядка в Python 3

В main.py:

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

В dialogue.py:

from world import * 
from event import * 

Класс Area определен в world.py, но когда я пытаюсь использовать класс Area из dialog.py, он возвращает

builtins.NameError: name 'Area' is not defined 

Если изменить порядок импорта в main.py к

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

Когда я пытаюсь открыть класс диалога с world.py, я получаю это

builtins.NameError: name 'Dialogue' is not defined 

Я думал заказ импорта не должно было иметь никакого значения? Как я могу получить доступ ко всем моим классам из всех моих файлов?

+4

Импорт * из многих модулей, вероятно, очень плохая идея – Bharel

+0

Если вы * должны * доступ абсолютно все и не хотят, чтобы перечислить что вам нужно, вы можете просто «импортировать мир» и использовать «world.Area» и т. д. @Bharel Нет «возможно» об этом. Это как ... воплощение 'import *' - плохая идея. – jpmc26

+0

Я согласен с @Bharel. Вы должны попробовать импортировать мир и т. Д. Можете ли вы опубликовать свой код из мира, диалога и события? –

ответ

0

Класс Площадь определяется в world.py, но когда я пытаюсь использовать класс Area от dialogue.py возвращает

, как вы импортируете ваш код является неправильным. Из обоих модулей вы импортируете *; это смущает Python, потому что оба модуля имеют класс под названием Area.

Вместо использования * (дикий импорт) импортировать их в качестве модулей

import dialogue 
import world 
import event 

d1 = world.Dialogue() 
d2 = dialogue.Dialogue() 
Смежные вопросы