亲宝软件园·资讯

展开

Python if __name__==‘__main__‘

波尔德 人气:0

前言:

我们先定义一个test01.py的文件。

test01.py中代码如下所示:

def step():
	print(__name__)
    print('step1 买菜'
          'step2 洗菜'
          'step3 切菜'
          'step4 炒菜')
if __name__=='__main__':
    print('准备制作菜品')
    step()
    print('制作完成')

输出结果:

注意:这段代码中输出的第一句。

print(__name__)

if __name__=='__main__'是一个判断模块是以什么形式运行的语句。

如果这个模块本身不被其他模块调用,而是自己运行的,,那么有没有
if __name__=='__main__',执行效果应该都是一样的,这时__name__的值就等于'__本模块名 + main__'

如果这个模块被其他模块调用。会出现什么情况呢?

如图所示定义一个test02.py文件:

输出结果如图所示:

我们发现,在test01中的输出语句“准备制作菜品”、“制作完成”并没有输出。
不难看出,test02不符合test01中if __name __= __main__的判断条件。

敲黑板总结啦:

__name__是用来标识模块名字的一个系统变量。这里分两种情况:第一种情况指的是当前运行的模块,那么当前模块__name__的值就为"main";
第二种情况指的是该模块是使用import导入的模块,那么这个被导入模块的__name__变量的值为该模块的文件名。

再来看一个例子:

test_one.py:

def test_function():
  print(__name__)
def test1_function(name):
  print(type(name), name)

test.py:

from test_one import *
test_function()
test1_function(__name__)

输出结果:

加载全部内容

相关教程
猜你喜欢
用户评论