##python코드에서 __name__이란?

__name__은 이 코드가 수행될때 코드가 포함된 파일에서 실행된건가 아니면 다른 파일에서 import되어서 수행되었는가에 대한 판단을 할수 있게 한다.

코드를 통해 알아보자

A.py 파일

def func():
    print("function A.py")

print("top-level A.py")

if __name__ == "__main__":
    print("A.py 직접 실행")
else:
    print("A.py가 임포트되어 사용됨")

B.py 파일

import A as one

print(""top-level in B.py"")
one.func()

if __name__ == "__main__":
    print("B.py가 직접 실행")
else:
    print("B.py가 임포트되어 사용됨")

cmd를 통한 테스트

>python A.py
top-level in A.py
A.py가 직접 실행


>python B.py
top-level in A.py
A.py가 임포트되어 사용됨
top-level in B.py
function A.py
B.py가 직접 실행

해당 코드가 코드가 쓰여진 쏘스파일에서 실행되면 __name__ 값은 __main__ 이 되고 다른 파일에서 import를 통하여 실행되면 코드가 적혀있는 파일이름 된다.

그림으로 설명잘되있는 참고사이트