__name__

if __name__ == "__main__"

이 구문을 단순하게 파이썬 파일 실행을 위한 구문이라고 외우기만 했었는데 __name__ 변수의 의미를 알면 이해가 되는 구문이어서 __name__ 변수에 대해 정리해보았다.

__name__의 의미를 알기 위해서는 모듈과 스크립트를 알아야 해 아래에 간단하게 정리했다.

모듈과 스크립트

모듈과 스크립트 모두 파이썬 파일(.py)을 의미한다. 그렇지만 이 둘은 용도로 구분된다.

프로그램에서 필요한 변수들이나 함수들을 정의해 놓는 용도의 파일은 모듈이고, 실제 프로그램을 작동시키는 코드를 담은 용도의 파일은 스크립트이다. 즉, 모듈은 import 용도의 파일이고, 스크립트는 실행 용도의 파일이다.

아래의 예에서 area.py는 모듈이고 run.py는 스크립트이다.

area.py

def triangle(height, base):
	"""직각 삼각형의 넓이를 구하는 함수"""
	return height * base / 2

run.py

import area

height = 5
base = 3
result = area.triangle(height, base)

print("밑변이 {}이고 높이가 {}인 삼각형의 면적은 {}입니다.".format(height, base, result))

__name__

__name__은 모듈의 이름을 저장하는 특수 변수이다.

__name__이 내 파일에서 실행되면 __main__으로 설정되고 다른 파일에서 임포트 당하여 실행되면 모듈 이름으로 설정된다. 아래 예시를 보면

area.py

print("area 모듈 이름: {}".format(__name__))
#--==>>area 모듈 이름: __main__

area파일에서 실행된 __name__ 변수는 __main__이지만

run.py

print("run 모듈 이름: {}".format(__name__))
#--==>> run 모듈 이름: __main__

import area
#--==>> area 모듈 이름: area

run.py파일에서 실행된 area.py의 __name__변수는 area로 출력된다.

if __name__ == “__main__”

즉, 이 구문은 __name__ 변수가 현재 __main__이라면 실행하라는 구문이다. 해당 파일에서만 실행하고 싶은 코드는 이 조건문 안에 넣어주면 된다.

area.py

def triangle(height, base):
	"""직각 삼각형의 넓이를 구하는 함수"""
	return height * base / 2

if __name__ == "__main__":
	print(triangle(1, 2) == 1)
	#--==>> True

run.py

import area

height = 5
base = 3
result = area.triangle(height, base)

print("밑변이 {}이고 높이가 {}인 삼각형의 면적은 {}입니다.".format(height, base, result))

이 예시에서 area.py파일에서만 True가 출력되는 것을 확인할 수 있다.

 

main()

area.py

def triangle(height, base):
	"""직각 삼각형의 넓이를 구하는 함수"""
	return height * base / 2

def main():
	"""함수를 테스팅하는 메인 함수"""
	print(triangle(1, 2) == 1)

if __name__ == "__main__":
	main()
	#--==>> True

이렇게 간단하게 정리할 수 있다.

 

 

 


https://www.instagram.com/p/CgL3wiYLTMo/?utm_source=ig_web_copy_link

부족하거나 잘못된 내용이 있을 경우 댓글 달아주시면 감사하겠습니다.

이 글에 부족한 부분이 존재할 경우 추후에 수정될 수 있습니다.


 

'Python > Python' 카테고리의 다른 글

Python에서 집합을 사용하는 이유  (0) 2023.01.10
불변성과 문자열 수정  (0) 2023.01.06
반내림 vs 내림(Python3)  (0) 2023.01.05
컴프리헨션  (0) 2022.12.28
파이썬(Python), 파이참(PyCharm) 설치(windows)  (0) 2021.07.24