English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
이 튜토리얼에서는 Python 프로그램의 __name__ 속성을 사용하여 다양한 상황에서 동적으로 실행하는 방법을 배울 것입니다。
일부 프로그래밍 언어에는 main()라는 특별한 함수가 있으며, 이는 프로그램 파일의 실행점입니다. 하지만 Python 인터프레터는 파일의 상단부터 순차적으로 각 행을 실행하며 명시적인 main() 함수가 없습니다。
Python은 실행점을 정의하는 다른 약정을 제공합니다. 중 하나는 python 파일의 main() 함수와 __name__ 속성을 사용하는 것입니다。
__name__ 변수는 특별한 내장 Python 변수로, 현재 모듈의 이름을 표시합니다。
Python 파일이 실행된 위치에 따라 다른 값이 있습니다. 예를 들어 보겠습니다。
추정해 보면 우리가helloworld.py의 Python 파일의 내용은 다음과 같습니다:
print(__name__)
우리가 명령 프롬프트에서 실행하면helloworld.py그렇다면 그것은 Python 스크립트로 실행됩니다. Python 프로그램을 실행하려면 다음 명령어를 사용할 수 있습니다:
python helloworld.py
def foo(): str="__main__" print(str); if __name__=="__main__": foo()
프로그램을 스크립트로 실행할 때, 변수의 값 __name__는__main__따라서, 다음 프로그램의 출력은 다음과 같을 것입니다:
__main__
파이썬 파일을 모듈로 실행할 수 있습니다. 이를 위해 이 파일을 다른 파이썬 프로그램에 가져와야 합니다. 예제를 보겠습니다.
heloworld.py 파일과 같은 디렉토리에main.py파이썬 파일. 다음과 같은 내용을 가지고 있습니다:
import helloworld
이 파일을 실행할 때, 다음과 같은 출력이 나타납니다:
helloworld
여기서, 모듈을 가져올 때 모듈 파일의 모든 코드가 실행된다는 것을 볼 수 있습니다.
하지만, 표시되지 않고 보이는 것을 볼 수 있습니다. __main__프로그램은 모듈의 이름을 표시합니다, 즉 helloworld。
이는 파이썬 파일을 모듈로 실행할 때, 모듈 자체의 이름이 __name__ 변수에 할당된다는 것입니다.
이제 우리는 __name__ 변수가 어떻게 값이 할당되는지 이해했으므로, 동일한 파이썬 파일을 다른 상황에서 다르게 실행할 수 있는 if 조건 문장을 사용할 수 있습니다.
그 예제를 보겠습니다.
제약이 있을 때,helloworld.py파일의 내용을 다음과 같이 변경합니다:
def main(): print("Hello World") if __name__=="__main__": main()
이제, 우리가 명령 줄을 통해 스크립트로 실행할 때, 출력은 다음과 같을 것입니다:
Hello World
하지만, 우리가 그것을main.py파일이 모듈로 실행될 때, main() 함수가 호출되지 않기 때문에 어떤 출력도 표시되지 않습니다.
여기서, 우리는 helloworld.py 파일에서 사용자 정의 main() 함수를 생성합니다. 이 함수는 프로그램이 독립 스크립트로 실행되지 않고 모듈로 실행될 때만 실행됩니다.
이는 파이썬에서 명시적으로 정의된 main() 함수의 표준 방법입니다. 이는 파이썬 파일 __name__ 변수의 가장 일반적인 사용 사례 중 하나입니다.