2017-12-07 5 views
0

Config 모듈에 함수 options()이 포함되어 있습니다. 이 함수는 사용자에게 특정 옵션을 제공하고 사용자가 선택한 옵션을 입력 할 수있게 한 다음 키보드 입력을 다른 모듈에서 사용되는 변수에 저장합니다.한 번 사용 된 가져온 모듈 함수가 두 번 호출되는 이유는 무엇입니까?

import Config as conf 

conf.options() 

내가 opt_numberChoice 값을 할당하기를 원하지만이 될하기 위해 설정 모듈을 opt_number = options() 발생합니다

def options(): 
    choices = {'1': 'Graph API Data', '2': 'Comparative Graphs', '3': 'Exit'} 
    for choice, option in sorted(choices.items(), key=lambda x: x[0]): 
     print(choice, option) 
    Choice = eval(input('Select what you want to do')) 
    return Choice 

    opt_number = options() 

이 모듈은 다른 스크립트에 의해 호출되는 다음 Config 모듈에 대한 코드는 다음입니다 다른 스크립트에서 한 번만 호출 될 때 두 번 호출됩니다.

options() 함수를 두 번 호출하지 않으려면 어떤 조치를 취해야합니까?

답변

1

당신은 파이썬 modules에 대해 더 읽어야합니다.

당신은 당신이 당신의 다른 스크립트에서 라인

conf.options() 

를 제거 할 경우 이미 초기화하여 그 함수를 호출 모듈을 가져,이 두 번 함수를 호출 중지해야, 한 번만 그 함수를 호출한다. 또 다른 방법은 Config.py 모듈에서 라인을 제거하는 것입니다.

opt_number = options() 

다른 많은 방법이 있습니다. 예를 들어 opt_number = options()을 다른 함수에 사용하는 경우와 같이,이 함수를 호출 할 때까지 options()을 호출하지 않습니다. 예를 들어 :

def take_action(): 
    opt_number = options() 

Config.py 내부 모듈은 opt_number를 초기화하고 conf.take_action() 다른 스크립트에서 호출 될 때 options() 기능 만 부를 것이다.

+0

정말 고마워요. 나는 그 작은 세부 사항을 다 훑어보아야 만한다. – dengel1392

+0

@ David 당신의 질문에 대답했다면 (정확한 답변으로 표시해야 함) (https://stackoverflow.com/help/someone-answers), 또한 코멘트 섹션은 문제에 대해 이야기하기위한 것이고, 답을 주셔서 감사합니다. upvoting에 감사드립니다). 일반 규칙에 대한 자세한 내용은 [https://stackoverflow.com/help/how-to-ask]를 참조하십시오. – Lycopersicum

관련 문제