반응형
Python에서 코드가 직접 실행되었을 때와 모듈로 import 되었을 때를 구분하는 방법은 if __name__ == "__main__":
구문을 사용하는 것입니다.
REST API로 호출 시 함수를 직접 import 후 함수를 호출함으로 파일에 포함되어 있는 코드가 실행되지 않습니다.
직접 호출 시에는 파일에 포함된 코드가 실행 됨으로 Local에서 바로 호출해서 실행할 수 있습니다.
🔹 원리
__name__
변수는 Python의 모든 스크립트에서 자동으로 설정됩니다.- 스크립트를 직접 실행하면
__name__
의 값이"__main__"
이 됩니다. - 모듈로 import 되면
__name__
은 해당 모듈의 파일명이 됩니다.
🔹 예제
my_module.py
(import될 수도 있고, 직접 실행될 수도 있는 파일)
def hello():
print("Hello, Python!")
# 직접 실행될 때만 실행되는 코드
if __name__ == "__main__":
print("이 파일이 직접 실행되었습니다.")
hello()
else:
print("이 파일이 import 되었습니다.")
실행 결과
1️⃣ 직접 실행 (python my_module.py
)
이 파일이 직접 실행되었습니다.
Hello, Python!
2️⃣ 다른 파일에서 import (import my_module
)
import my_module
이 파일이 import 되었습니다.
🔹 활용 예시 1
✅ 테스트 코드 분리
def add(a, b):
return a + b
if __name__ == "__main__":
# 테스트용 코드 (이 파일을 실행할 때만 실행됨)
print(add(2, 3)) # 5
다른 파일에서
import
하면add()
함수는 가져오지만, 테스트 코드는 실행되지 않음.
✅ 스크립트 실행 제어
def run():
print("스크립트 실행 중...")
if __name__ == "__main__":
run()
터미널에서 실행하면
run()
이 실행되지만, 다른 모듈에서import
하면 실행되지 않음.
🔹 활용 예시 2
✅ 테스트 코드 분리
def foreigner_organ_buy(period: int):
return {"period": period}
if __name__ == '__main__':
result = foreigner_organ_buy(10)
print(f"result: {result}")
이 방식을 사용하면 같은 파일을 모듈로 사용할 수도 있고, 독립 실행 프로그램으로 사용할 수도 있어서 Python 코드의 재사용성을 높일 수 있습니다. 🚀
반응형
'언어 > Python' 카테고리의 다른 글
[ Python ] MySQL에 연결해서 데이터 가져오기 (0) | 2025.02.03 |
---|---|
[ Python ] REST API 기능 제공하기 (0) | 2025.02.03 |
[ Python ] Requests - Rest API 사용하기 (0) | 2025.01.12 |
[ Python ] 상위 폴더에 있는 모듈 import 시 경로 설정하기 (0) | 2025.01.12 |
[ Python ] Pandas 기본 사용하기 (0) | 2025.01.12 |