2010-07-19 3 views
11

하는 경우를 __main__?루비 상당 나는과 같이 함수를 정의 루비 파일에

if __name__ == "__main__": 
    tell_the_truth() 

단순히 함수를 파일 내부에서 호출하는 것입니까?

tell_the_truth 
+2

파이썬의'if' 이유가 호출되는 기능을 방지하는 것입니다 Ruby 예제가 (내가 아는 한) –

+0

Michael에게 감사드립니다. 나는 왜 파이썬에서 if 뒤에 숨어 있는지 이해한다. 비교하기 위해 필자는 함수 정의 바로 아래에 tell_the_truth()를 넣은 다음 "require"를 사용하여 다른 루비 파일에서 해당 파일을 가져와 보았습니다. 그것은 "진실"을 인쇄합니다. 따라서 파일을 가져올 때 최상위 수준의 명령문이 실행되는 것 같습니다. – Rodrigue

답변

25

나는이 일 것으로 예상 : 파일이있는 또 다른 하나에 포함되어있는 경우

if __FILE__ == $0 
    tell_the_truth() 
end 
1
if __FILE__ == $PROGRAM_NAME 
    tell_the_truth() 
end