2014-01-20 2 views
0

I 인해 특정 키 누름에 한 번 이상 동일한 모듈을 가져 오는 방법을 찾기 위해 노력하고 있어요 ....가져 오기 같은 파이썬 모듈은 한 번 이상

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()'를 사용해야합니다. –

답변

2

당신은 할 수 없습니다.

나는 코드의 구조를 추측해야한다. 왜냐하면 당신은 꽤 Short, Self Contained, Correct (Compilable), Example을 제공하지 않기 때문이다. import 문이 실제로 코드를 실행하지, 범위에 코드를 데려 위해 설계

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

: 메인 모듈과 함께

# foo_level.py 
print "foo" 

:

당신은 아마 같이 여러 모듈이 .

넣어 당신이 함수를 여러 번 실행하려는 모든 코드 :

# 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

관련 문제