美文网首页
if __name__==’__main__:”

if __name__==’__main__:”

作者: 微微笑_蝶虹 | 来源:发表于2020-05-16 16:17 被阅读0次

在Python当中,如果代码写得规范一些,通常会写上一句“if __name__==’__main__:”作为程序的入口,但似乎没有这么一句代码,程序也能正常运行。这句代码多余吗?

与Java、C、C++等几种语言不同的是,Python是一种解释型脚本语言,在执行之前不同要将所有代码先编译成中间代码,Python程序运行时是从模块顶行开始,逐行进行翻译执行,所以,最顶层(没有被缩进)的代码都会被执行,所以Python中并不需要一个统一的main()作为程序的入口。在某种意义上讲,“if __name__==’__main__:”也像是一个标志,象征着Java等语言中的程序主入口

当你要导入某个模块,但又不想改模块的部分代码被直接执行,那就可以这一部分代码放在“if __name__=='__main__':”内部

# A.py

a = 50

print('你好,我是A.py……')

print(a)

# B.py

from package01 import A

b = 80

print('你好,我是B.py……')

print(b)

运行模块B时,输出结果如下:

你好,我是A.py……

  50

  你好,我是B.py……

  80


如果在模块A中,我们有部分的代码不想在被导入到B时直接被运行,但在直接运行A时可直接运行,那该怎么做呢?那就可以用到“if __name__==’__main__:”这行代码了,我们对上面用到的A模块代码进行修改

# A.py

a = 50

print('你好,我是A.py……')

if__name__=='__main__':

    print(a)

B模块不做修改,直接执行B模块,输出结果如下:

  你好,我是A.py……

  你好,我是B.py……

  80

  “__name__”是Python的内置变量,用于指代当前模块

相关文章

网友评论

      本文标题:if __name__==’__main__:”

      本文链接:https://www.haomeiwen.com/subject/svqkohtx.html