Computer >> 컴퓨터 >  >> 프로그램 작성 >> Python

if __name__ ==__main__:은 파이썬에서 무엇을 합니까?


Python 인터프리터는 소스 파일을 읽을 때 그 안에 있는 모든 코드를 실행합니다.

코드를 실행하기 전에 몇 가지 특수 변수를 정의합니다. 예를 들어, 파이썬 인터프리터가 해당 모듈(소스 파일)을 메인 프로그램으로 실행하는 경우 특수 __name__ 변수가 "__main__" 값을 갖도록 설정합니다. 이 파일을 다른 모듈에서 가져오는 경우 __name__이 모듈 이름으로 설정됩니다.

이렇게 하는 한 가지 이유는 때때로 직접 실행할 수 있는 모듈(.py 파일)을 작성하기 때문입니다. 또는 다른 모듈에서 가져와서 사용할 수도 있습니다. 주요 검사를 수행하면 해당 코드가 모듈을 프로그램으로 실행하고 싶을 때만 실행되고 누군가가 모듈을 가져와서 함수 자체를 호출하려고 할 때 실행하지 않도록 할 수 있습니다.

예를 들어 다음 코드가 있는 one.py 및 two.py 파일이 2개 있는 경우:

one.py:

def func():
    print("func() in one.py")
print("Root of one.py")
if __name__ == "__main__":
    print("one.py is being run directly")
else:
    print("one.py is being imported")

Two.py:

import one
print("Root of two.py")
one.func()
if __name__ == "__main__":
    print("two.py is being run directly")
else:
    print("two.py is being imported")

이제 달리면

$ python one.py

다음과 같은 결과를 얻을 수 있습니다.

Root of one.py
one.py is being run directly

하지만 달리면

$ python two.py

다음과 같은 결과를 얻을 수 있습니다.

Root of in one.py
one.py is being imported
Root of in two.py
func() in one.py
two.py is being run directly