다른 사람들의 파이썬 코드를 보다보면
if __name__ == "__main__"
이런 구문을 보신적이 있으실지 모르겠습니다.
import 에 대한 내용을 작성했던 적이 있습니다.
import 로 불러오는 모듈 역시 [ .py ] 확장자를 가진
파이썬 파일입니다.
즉, 우리가 만든 파이썬 파일을 다른 코드에서 불러다가
재사용 할 수 있다는 의미입니다.
다시 [ if __name__ == "__main__" ] 으로 돌아가겠습니다.
위 구문은
현재 파이썬 파일이 직접 실행 될때만 내부 코드가 실행되도록 합니다.
현재의 파이썬 파일을 직접 실행할 때는 if __name__ == "__main__"
다음에 오는 코드 블록이 실행되며,
모듈로 사용될 때는 실행되지 않습니다.
예를들어 아래의 코드를 살펴보겠습니다.
#ifname.py
def example():
print("hello")
example()
위 코드를 실행하면 [ hello ]가 출력됩니다.
#test.py
import ifname
만약 test.py라는 파일을 만들고
위와 같이 [ import ifname ]
한줄만 입력한 후 코드를 실행해 보면 [ hello ]가 출력됩니다.
ifname.py 라는 파일에서 이미 example() 함수를 호출했기 때문에
ifname.py 라는 파일을 import 만 했는대도 [ hello ]가 출력이 됩니다.
ifname.py 파일을 호출한 후
필요할 때만 example() 함수를 호출하고 싶다면
ifname.py 파일의 코드를 다음과 같이 작성하면 됩니다.
#ifname.py
def example():
print("hello")
if __name__ == "__main__":
example()
이렇게 하면 ifname.py를 직접 실행할 때에는
example() 함수가 호출되어
[ hello ]가 출력됩니다.
코드를 위와 같이 고친 후
아래 코드를 다시 실행해 보세요
#test.py
import ifname
이제는 아무것도 호출되지 않습니다.
ifname.py 내부에서 [ if __name__ == "__main__" ]
를 사용했기 때문에 모듈로 사용될 때는
[ if __name__ == "__main__" ]
내부의 코드가
실행이 되지 않습니다.
test.py 파일에서 example() 함수를 호출하고 싶다면
아래와 같이 직접 호출을 해주어야 합니다.
#test.py
import ifname
ifname.example()
이렇게 해야 정상적으로[ hello ]가 출력이 됩니다.
여기를 방문하시면 더 많은 파이썬 관련 자료를 확인할 수 있습니다.
'파이썬(Python)' 카테고리의 다른 글
[ Tkinter, Re ] 텍스트 파일(txt)을 불러와 공백 제거하기 (1) | 2023.03.19 |
---|---|
[ Basic ] 파이썬 with 구문 : with ~ as (0) | 2023.03.17 |
[ Basic ] 파이썬(python) lambda 함수 (0) | 2023.03.09 |
[ Basic ] Python(파이썬) sorted 함수 (0) | 2023.03.08 |
[ Basic ] 파이썬 Dictionary 키와 값의 목록 반환, keys() / values() / items() (0) | 2023.02.27 |