2013-09-29 1 views
-3

저는 Python을 배우고 Eclipse + PyDev를 처음 사용했습니다. 왜 내 프로그램이 실행되고 있는지 알 수 없습니다. 내가 제대로이 실행을 위해 하나의 기능 모두에서 뭔가를 놓친 거지 가정입니다Python 프로그램의 "main()"이 호출시 실행되지 않습니다.

def main(): 
    print("Testing") 
    test1 = float(input("Test1: ")) 
    test2 = float(input("Test2: ")) 
    test3 = float(input("Test3: ")) 
    calculate_cost (test1, test2, test3) 

def calculate_cost (test1, test2, test3): 
    print("Testing") 

:

여기 내 코드입니다.

+7

코드에서'main()'을 호출하지 않았습니다. –

답변

6

이것은 C/C++가 아닌 Python입니다. main()은 프로그램의 시작점이 아니므로 수동으로 함수를 호출해야합니다. 그냥 전화 :

# your code 
# ... 
main() 

을 다른 곳에서 가져올 때 코드가 호출되는 것을 방지하려면, 다음 사용할 :

# your code 
# ... 
if __name__ == '__main__': 
    main() 

이 질문은 : What does if __name__ == “__main__”: do?이 마지막 블록을 설명합니다.

+0

왜 사람들이 * __name__ == '__main __'비트를 쓰는지에 대해 이야기하는 것이 도움이 될 수 있습니다. 따라서 라이브러리 전용 라이브러리로 간주되지 않습니다. 예를 들어 모듈을 가져 와서 분석하는 정적 분석 도구를 사용할 수 있습니다. –

+0

확실히 찰스, 사실 나는 그것을 설명하는 SO 질문을 찾고있었습니다. – jabaldonedo

+0

그래, 나도 궁금해. – user1804933

3

다른 언어와 달리 프로그램 실행시 main 함수가 호출된다는 관례는 시행되지 않습니다. 파이썬에서는 수동으로해야 할 것입니다. 즉 main 함수를 실행하려면 스크립트 맨 아래에 main()을 넣어야합니다.

일반적인 패턴은 다음과 같은 사용하는 것입니다

if __name__ == '__main__`: 
    main() 

이 스크립트가 직접 실행되는 main 기능을 실행하지만, 스크립트가 다른 곳에서 모듈로 가져올 때 실행을 방지 할 수 있습니다. 해당 부분에 대한 자세한 내용은 this question을 참조하십시오.

+0

대단히 감사합니다. 이것이 필요하다는 것을 깨닫지 못했습니다. – user1804933

관련 문제