Data/Python

[Python] if __name__ == "__main__"의 뜻

재은초 2023. 6. 17. 22:22
반응형

if name == "main" 의 의미

  • 파이썬의 __name__ 변수는 파이썬 내부적으로 사용하는 특별한 변수 이름으로, 'mod1.py'의 직접 파이썬 파일을 실행할 때는 __name__ 변수에 __main__ 값이 저장되고 'mod1'의 모듈만 import 할 경우에는  __name__ 변수에 모듈 이름이 저장됨
  • 만약 위의 문구를 넣지 않으면, 'import 모듈이름' 문구를 수행하는 순간 모든 모듈이 실행되어 결과값을 출력한다.
  • 해당 문구가 참이면(직접 이 파일을 실행시켰을 때) if문 수행되고, 해당 문구가 거짓이면(다른 파일에서 모듈 사용시) if문 수행되지 않음
>>> import mod1
>>> mod1.__name__
'mod1'
# mod1.py 
def add(a, b): 
    return a+b

def sub(a, b): 
    return a-b

if __name__ == "__main__":        # 직접 이 파일을 실행시켰을 때는 
    print(add(1, 4))              # 참이므로 if문 문장 수행
    print(sub(4, 2))              # 반대로 다른 파일에서 모듈 사용시
                                  # 거짓이므로 if문 문장 수행되지 않음
반응형