首先定义了一个test.py的文件,然后再定义一个函数,并在函数定义后直接运行:
test.py def HaveFun(): if __name__ == '__main__': print('I am in my domain,my name is %s' % __name__) else: print('Someone else calls me!,my name is %s' % __name__) HaveFun()
运行test.py结果:
I am in my domain,my name is __main__
然后继续创建一个main.py的文件,程序如下:
main.py import test test.HaveFun()
执行main.py文件,结果如下:
Someone else calls me!,my name is test Someone else calls me!,my name is test
这里打印了两次,第一次实在main.py在进行import test的时候,进行的打印,第二次才是test.HaveFun()中执行的打印,可以发现,这里的
__name__
名称已经发成了变化,从之前的main变成了模块名称test。
总结:
1、__name__
这个系统变量显示了当前模块执行过程中的名称,如果当前程序运行在这个模块中,__name__
的名称就是__main__
如果不是,则为这个模块的名称。
2、__main__
一般作为函数的入口,类似于C语言,尤其在大型工程中,常常有if __name__ == "__main__":
来表明整个工程开始运行的入口。