>  기사  >  백엔드 개발  >  __name__ =&#__main__&#이 Python에서 수행하는 작업은 무엇입니까?

__name__ =&#__main__&#이 Python에서 수행하는 작업은 무엇입니까?

PHPz
PHPz원래의
2024-07-29 07:00:03512검색

What does if __name__ =

실제 목적이 무엇인지 알지 못한 채 Python 스크립트에서 __name__=="__main__": 이라는 코드 줄을 많이 본 적이 있을 것입니다. 걱정하지 마십시오. 이 짧은 블로그에서 이에 대해 논의할 예정입니다

프로그램이나 스크립트를 직접 실행하면 Python이 자동으로 "main"을 특수 name 변수에 할당합니다. 이는 기본적으로 파일이 여기서 "기본" 스크립트이고 다른 스크립트로 가져오는 대신 직접 실행되고 있음을 나타 내기 위해 수행됩니다.

이를 이해하려면 새 Python 스크립트를 만들고 이름을 "example.py"로 지정하고 다음과 같이 작성하세요.

print("Name of Script: ", __name__)

이것을 실행하면 스크립트 이름이 __main__으로 출력되는 것을 볼 수 있습니다. 이는 단순히 파일이 직접 실행되고 있기 때문입니다.

이제 또 다른 Python 스크립트 파일을 만들고 example.py를 이 파일로 가져옵니다. 이를 실행하면 Name of Script: example이라는 다른 결과가 표시됩니다. 이는 이제 직접 실행하는 대신 스크립트를 가져와 간접적으로 실행하기 때문입니다. 따라서 Python은 이제 파일의 실제 이름을 표시합니다.

더 잘 이해할 수 있도록 예제 파일을 일부 변경해 보겠습니다.

def s_name():
    print("Name of Script: ", __name__)

s_name()

def greet():
    print("Hello! How are you doing?")

if __name__=="__main__":
    greet()

이제 이것을 직접 실행하면 모든 것이 완벽하게 실행되지만 example.py 스크립트를 가져오는 다른 파일을 실행하면 Greeting 함수 호출이 실행되지 않은 것을 알 수 있습니다. 왜 그럴까요?

이것은 if 조건부 때문입니다. 조건문이 하는 일은 파일이 직접 실행되고 있는지 여부를 확인하는 것입니다. 직접 실행되는 경우 main이 특수 변수 name에 할당되어 이 조건이 true가 되고 조건 내부의 모든 것이 평소대로 실행됩니다.

그러나 다른 파일로 가져와서 거기서 간접적으로 실행하는 경우 조건문은 참이 아니며 조건문 내부에 있는 모든 내용은 실행되지 않습니다.

이것이 조건문의 의미입니다. 스크립트를 모듈로 가져올 때 Python 인터프리터가 불필요한 코드 줄을 자동으로 실행하는 것을 방지합니다.

그러나 스크립트를 모듈로 가져올 때에도 이러한 함수를 호출할 수 있습니다. 예:

import example

example.greet()

이런 방식으로 조건이 만족되지 않는 경우에도 가져온 모듈에서 모든 함수를 완벽하게 호출할 수 있습니다.

위 내용은 __name__ =&#__main__&#이 Python에서 수행하는 작업은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.