详解python中__name__的意义以及作用

yipeiwu_com6年前Python基础

首先定义了一个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__":来表明整个工程开始运行的入口。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持【听图阁-专注于Python设计】。

相关文章

python使用epoll实现服务端的方法

如下所示: #!/usr/bin/python # -*- coding: UTF-8 -*- import socket import select send_data = "h...

利用Python操作消息队列RabbitMQ的方法教程

前言 RabbitMQ是一个在AMQP基础上完整的,可复用的企业消息系统。他遵循Mozilla Public License开源协议。 MQ全称为Message Queue, 消息队列(...

Python中struct模块对字节流/二进制流的操作教程

Python中struct模块对字节流/二进制流的操作教程

前言 最近使用Python解析IDX文件格式的MNIST数据集,需要对二进制文件进行读取操作,其中我使用的是struct模块。查了网上挺多教程都写的挺好的,不过对新手不是很友好,所以我重...

浅谈Django的缓存机制

由于Django是动态网站,所有每次请求均会去数据进行相应的操作,当程序访问量大时,耗时必然会更加明显,最简单解决方式是使用:缓存,缓存将一个某个views的返回值保存至内存或者memc...

使用python开发vim插件及心得分享

使用python开发vim插件及心得分享

vim有各种强大的插件,这不仅归功于其提供的用来编写插件的脚本语言vimL,还得益于它良好的接口实现,从而支持python等语言编写插件。当vim编译时带有+python特性时就能使用p...