[Python] if __name__ == "__main__":

Jae Gyeong Lee·2023년 10월 3일

if name == "main"

if name == "main": 아래 위치한 명령어들은 해당 파이썬 스크립트를 '직접 실행한 경우'에만 실행되고, '직접 실행하지 않은 경우(모듈을 import한 뒤 실행)'엔 실행되지 않는다.

  • (1)스크립트에서 직접 실행하는 경우와 (2)모듈을 import한 뒤 실행하는 경우를 구분하기 위해 사용

  • 조건문 if name == "main" 안에는 스크립트를 직접 실행했을 때 실행되길 원하는 명령어 작성

1. if name == "main" 미적용

# meet.py

def introduce(a):
    return '안녕 내 이름은 {}'.format(a)

print(introduce('가나다'))

출력값
- 안녕 내 이름은 가나다
# Untitled.py

import meet
print(meet.introduce('마바사'))

출력값
- 안녕 내 이름은 가나다
- 안녕 내 이름은 마바사
  • meet.py 파일에 있는 print(introduce('가나다')) 부분도 같이 출력됨

2. if name == "main" 적용

# meet1.py

def introduce(a):
    return '안녕 내 이름은 {}'.format(a)

if __name__ == "__main__":
	print(introduce('가나다'))

출력값
- 안녕 내 이름은 가나다
# Untitled.py

import meet1

print(meet1.introduce('마바사'))

출력값
- 안녕 내 이름은 마바사
  • meet1.py 파일에 있는 print(introduce('가나다')) 부분은 출력되지 않음
  • 출력되지 않은 이유: meet1.name 의 그 값이 main이 아님, 'meet1' 임. 그래서 meet1.py 파일 내 if name == "main" 조건이 충족되지 않음

결론: if name == "main": 구문은 스크립트 파일이 직접 실행될 때만 해당 코드 블록이 실행됨, 모듈을 import한 뒤 실행하는 경우엔 실행되지 않음

profile
안녕하세요 반갑습니다. 공부한 내용들을 기록하고 있습니다.

0개의 댓글