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

yipeiwu_com5年前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进度条实时显示处理进度的示例代码

前言 在大多数时候,我们的程序会一直进行循环处理。这时候,我们非常希望能够知道程序的处理进度,由此来决定接下来该做些什么。接下来告诉大家如何简单又漂亮的实现这一功能。 如何使用这个类 使...

python的描述符(descriptor)、装饰器(property)造成的一个无限递归问题分享

分享一下刚遇到的一个小问题,我有一段类似于这样的python代码: 复制代码 代码如下: # coding: utf-8 class A(object):   &nb...

python之当你发现QTimer不能用时的解决方法

如下所示: # -*- coding: utf-8 -*- import numpy as np from PyQt5.QtCore import QTimer, QObject...

布隆过滤器的概述及Python实现方法

布隆过滤器 布隆过滤器是一种概率空间高效的数据结构。它与hashmap非常相似,用于检索一个元素是否在一个集合中。它在检索元素是否存在时,能很好地取舍空间使用率与误报比例。正是由于这个特...

python统计文本字符串里单词出现频率的方法

本文实例讲述了python统计文本字符串里单词出现频率的方法。分享给大家供大家参考。具体实现方法如下: # word frequency in a text # tested wit...