python - __name__= __main__怎么解释 怎么用 另外两个py文件之间的互动关联
问题描述
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.pydef 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.pyob05.py is being run directly
ob06.pyimport ob05print('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.pyob05.py is being imported into another moduletop-level in ob06.pyfunc() in ob05.pyob06.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__' 是什么意思 起什么作用
问题解答
回答1:简单来说就是每一个Python代码文件里都可以写上一段
if __name__ == ’__main__’: doSomething()
这里的dosomething只会在你直接在终端执行这个文件的时候会被调用,而不会在作为包import到其他文件并执行那个文件时调用。
回答2:这样理解python中的if name == ’main’:https://github.com/pythonpeix...
回答3:__name__:表示模块,类等的名字;
__main__:表示模块,xxx.py文件本身.
被直接执行时,对应的模块名就是__main__,可以在if __name__ == “__main__”:中添加你自己想要的,用于测试模块,演示模块用法等代码。
作为模块,在其他地方被导入(import)时,模块名就是本身文件名xxx了。
回答4:函数有两个主要作用:1、代码重用。 2、过程分解。这就意味这你写别的程序的时候可能会调用现在写的这个函数。编写好一个函数后,我们需要测试这个函数或者用它做一些工作,那我们就把要做的事情写在 if __name__==’__main__’: 里面 。二天你写别的程序调用这个模块的时候,它会执行 if __name__==’__main__’:前面的函数,而不会执行if __name__==’__main__’:里面的代码。
相关文章: