if __name__==’__main__:”

在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__:”)