2014-01-20 4 views
0

Я пытаюсь найти способ импорта и тот же модуль несколько раз из-за некоторое нажатием клавиши ....Импорта модуль же питон несколько раз

if event.type == pygame.KEYDOWN: 
    if event.key == pygame.K_1: 
     import forest_level 
    if event.key == pygame.K_2: 
     import sea_level 
    if event.key == pygame.K_3: 
     import desert_level 
    if event.key == pygame.K_4: 
     import underwater_level 
    if event.key == pygame.K_5: 
     import space_level 

говорит, что если бы я был на уровне леса и пошел на уровень моря, как мне вернуться на уровень леса?

GAME CODE

+0

Модуль импортируется только один раз, позже импорт просто извлекает уже импортированный объект модуля из 'sys.modules'. Вам придется использовать 'reload()', чтобы заставить Python перезагрузить уже импортированный модуль. –

ответ

2

Вы не можете.

Мне нужно угадать структуру вашего кода, так как у вас нет достаточного количества Short, Self Contained, Correct (Compilable), Example.

Вы, вероятно, есть несколько модулей, которые выглядят как:

# foo_level.py 
print "foo" 

вместе с основным модулем:

# main.py 
while True: 
    key = raw_input() 
    if key == "foo": 
     import foo_level 
    # and so on. 

import инструкция предназначена для приведения кода в область видимости, не для фактического выполнения кода ,

Put все код, который вы хотите запустить несколько раз в функции:

# foo_level.py 
def do_stuff(): 
    print "foo" 

и вместо, импортировать все модули один раз, в начале и вызвать новые функции внутри цикла:

# main.py 
import foo_level 
while True: 
    key = raw_input() 
    if key == "foo": 
     foo_level.do_stuff() 
    # and so on. 
+0

Извините, но я не понимаю этого, поэтому ваше высказывание создает новый модуль со всеми уровнями, определенными им, а затем другим модулем, который позволяет вам называть уровни из вновь созданного? – user2921888

+1

См. Мои правки, я надеюсь, что это яснее. – SingleNegationElimination

+0

спасибо, кстати, мой код игры был в ссылке ... – user2921888

Смежные вопросы