if name == "main": Java의 main() 메소드와 마찬가지로 Python 프로그램의 입구로 간주할 수 있지만 완전히 정확하지는 않습니다.
실제로 Python 프로그램은 위에서 아래로 한 줄씩 실행됩니다. .py 파일에서는 def 뒤에 정의된 함수를 제외한 코드는 "main" 메서드의 내용으로 간주되어 위에서 아래로 실행됩니다. . 단지 멋진 "hello world"를 작성하고 함수를 작성하고 싶지 않다면 그냥 인쇄(‘hello world’)하면 됩니다. 이것은 "프로그램"이며 소위 "메인"이 필요하지 않습니다. " 메소드 항목입니다. 물론 함수를 테스트하는 경우 .py 파일에 if name == "main"이라고 쓴 다음 함수를 호출해야 합니다.
예를 들어 다음 hello.py 파일은
print("first") def sayHello(): str = "hello" print(str); print(__name__+'from hello.sayhello()') if __name__ == "__main__": print ('This is main of module "hello.py"') sayHello() print(__name__+'from hello.main')
실행 결과:
first This is main of module "hello.py" hello __main__ from hello.sayhello() __main__ from hello.main
무슨 말인지 이해하셨나요? 인쇄의 첫 번째 줄을 먼저 실행한 다음 "entry"에 있는 항목을 실행하세요
그런데, name == "main"이면 문장은 무엇을 의미하나요?
name__은 실제로 현재 py 파일을 호출하는 방법을 나타내는 내장 속성입니다. 위 예제가 실행되면 전체 프로그램에서 __name__ 속성이 어디에 있든 값은 __main입니다. 이 hello.py 파일을 world .py와 같은 다른 .py 파일(즉, 가져오기)에 모듈로 가져옵니다. , world.py를 실행 중입니다. 이때 hello.py의 __name__ 속성은 if 판단이 실패하므로 소위 입구가 실행되지 않습니다. main() 메소드.
파이썬은 한줄씩 실행한다고 언급했는데, import hello를 읽으면 hello.py도 실행하게 됩니다. 예를 들어 다음 world.py 파일을 실행하면
import hello#上一个例子的hello.py if __name__ == "__main__": print ('This is main of module "world.py"') hello.sayHello() print(__name__)
실행 결과:
first This is main of module "world.py" hello hellofrom hello.sayhello() main
를 볼 수 있습니다. hello.py의 첫 번째 print('first') 줄이 직접 실행되고, hello.py의 __name__도 hello를 출력하고, world.py의 이름은 __main__
을 출력합니다.위 내용은 Python에서 main 메소드를 사용하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!