python - __name__= __main__怎么解释 怎么用 另外两个py文件之间的互动关联
巴扎黑
巴扎黑 2017-04-18 10:25:24
0
4
729

name = '__main__' 的作用
有句话经典的概括了这段代码的意义:

“Make a script both importable and executable”

意思就是说让你写的脚本模块既可以导入到别的模块中用,另外该模块自己也可执行。
def foo():
    print('in foo')
print(__name__)
foo()
if __name__=='__main__':
    foo()
返回结果
main   意思是__name__=__main,所以if语句判断True。

ob05.py
def func():
    print("func() in ob05.py")
print("top-level in ob05.py")

if name == "__main__":
    print("ob05.py is being run directly")
else:
    print("ob05.py is being imported into another module")
结果:
top-level in ob05.py
ob05.py is being run directly

ob06.py
import ob05
print("top-level in ob06.py")
ob05.func()
if name == "__main__":
    print("ob06.py is being run directly")
else:
    print("ob06.py is being imported into another module")
结果:
top-level in ob05.py
ob05.py is being imported into another module
top-level in ob06.py
func() in ob05.py
ob06.py is being run directly

Thus, when module one gets loaded, its name equals "one" instead of __main__.
意思是ob05模块被导入的话,ob05模块中的__name__=__main__
解释错或不对不完善 麻烦完善下 
那import是干嘛用呢,就引入了一个func()?name == "__main__" 是什么意思 起什么作用

巴扎黑
巴扎黑

모든 응답(4)
大家讲道理

간단히 말하면 모든 Python 코드 파일에 단락을 작성할 수 있습니다

으아악

여기서 dosomething은 이 파일을 터미널에서 직접 실행할 때만 호출되고, 다른 파일에 패키지로 import해서 해당 파일을 실행할 때는 호출되지 않습니다.

Peter_Zhu

파이썬에서 name == 'main'인지 이해하는 방법은 다음과 같습니다.
https://github.com/pythonpeix...

Ty80

__name__: 모듈, 클래스 등의 이름을 나타냅니다.

__main__: 모듈, 즉 xxx.py 파일 자체를 나타냅니다.

  • 을 직접 실행하는 경우 해당 모듈 이름은 __main__입니다. if __name__ == “__main__”:에 모듈 테스트, 모듈 사용법 시연 등 원하는 코드를 추가할 수 있습니다.

  • 모듈로서 다른 곳에서 임포트할 경우 모듈 이름은 자체 파일명 xxx입니다.

小葫芦

함수에는 두 가지 주요 기능이 있습니다: 1. 코드 재사용. 2. 프로세스 분해. 즉, 다른 프로그램을 작성할 때 지금 작성 중인 함수를 호출할 수도 있다는 의미입니다. 함수를 작성한 후에는 함수를 테스트하거나 함수를 사용하여 몇 가지 작업을 수행해야 합니다. 그런 다음 if __name__=='__main__':에서 수행하려는 작업을 작성합니다. 다음 날 이 모듈을 호출하기 위해 다른 프로그램을 작성하면 if __name__=='__main__': 앞에 있는 함수가 실행되지만 if __name__=='__main__': 내부의 코드는 실행되지 않습니다.

최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!