python__name__原理及用法详解


Posted in Python onNovember 02, 2019

1、python中__name__是什么意思?

很多python的初学者可能都会遇到一个问题:__name__是什么意思?

在刚开始学习python的时候,我们总会看到这样一句代码:

if __name__ == "__main__":

一开始我以为这句代码的意思和C语言中的main函数一样,程序从这里开始执行,但后来经过查询资料发现,两者并不完全相同,这里做一些解释:

  • __name__是一个变量,前后加了双下划线是因为这是系统定义的名字(python中系统变量都是双下划?开头结尾),普通变量不使用这种命名方式;
  • python有很多模块,这些模块是可以独立运行的(这一点与C语言和C++的头文件不同);
  • __name__是用来标识模块名字的一个系统变量。这里分两种情况:第一种情况指的是当前运行的模块,那么当前模块__name__的值就为"__main__";第二种情况指的是该模块是使用import导入的模块,那么这个被导入模块的__name__变量的值为该模块的文件名(去掉.py)。

2、测试一下上面内容的正确性

首先创建两个测试文件,代码如下

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__)

运行test.py文件,得到下面的结果:

python__name__原理及用法详解

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python3访问sina首页中文的处理方法
Feb 24 Python
python中zip和unzip数据的方法
May 27 Python
Python如何为图片添加水印
Nov 25 Python
Python列表删除的三种方法代码分享
Oct 31 Python
Tensorflow之构建自己的图片数据集TFrecords的方法
Feb 07 Python
python机器学习之随机森林(七)
Mar 26 Python
解决Django数据库makemigrations有变化但是migrate时未变动问题
May 30 Python
详解Python循环作用域与闭包
Mar 21 Python
python django下载大的csv文件实现方法分析
Jul 19 Python
python分布式编程实现过程解析
Nov 08 Python
Python实现非正太分布的异常值检测方式
Dec 09 Python
python 实现一个简单的线性回归案例
Dec 17 Python
简单了解python中的f.b.u.r函数
Nov 02 #Python
如何在python中实现随机选择
Nov 02 #Python
图解python全局变量与局部变量相关知识
Nov 02 #Python
Python如何实现动态数组
Nov 02 #Python
python基于gevent实现并发下载器代码实例
Nov 01 #Python
python进程间通信Queue工作过程详解
Nov 01 #Python
通过实例了解python property属性
Nov 01 #Python
You might like
使用php+xslt在windows平台上
2006/10/09 PHP
ThinkPHP3.2.3数据库设置新特性
2015/03/05 PHP
浅谈PHP的反射机制
2016/12/15 PHP
Yii2使用$this->context获取当前的Module、Controller(控制器)、Action等
2017/03/29 PHP
JS 页面内容搜索,类似于 Ctrl+F功能的实现代码
2007/08/13 Javascript
几个比较经典常用的jQuery小技巧
2010/03/01 Javascript
jquery学习笔记二 实现可编辑的表格
2010/04/09 Javascript
中国地区三级联动下拉菜单效果分析
2012/11/15 Javascript
JavaScript对IE操作的经典代码(推荐)
2014/03/10 Javascript
checkbox选中与未选中判断示例
2014/08/04 Javascript
JS操作JSON方法总结(推荐)
2016/06/14 Javascript
node.js爬虫爬取拉勾网职位信息
2017/03/14 Javascript
深入理解Vue 的条件渲染和列表渲染
2017/09/01 Javascript
教你如何编写Vue.js的单元测试的方法
2018/10/17 Javascript
js replace替换字符串同时替换多个方法
2018/11/27 Javascript
vue把输入框的内容添加到页面的实例讲解
2019/11/11 Javascript
vue实现微信浏览器左上角返回按钮拦截功能
2020/01/18 Javascript
vue自定义指令限制输入框输入值的步骤与完整代码
2020/08/30 Javascript
[43:49]LGD vs CHAOS 2019国际邀请赛小组赛 BO2 第一场 8.15
2019/08/16 DOTA
python共享引用(多个变量引用)示例代码
2013/12/04 Python
在Python中使用列表生成式的教程
2015/04/27 Python
Python实现简易端口扫描器代码实例
2017/03/15 Python
python3实现弹弹球小游戏
2019/11/25 Python
python基于三阶贝塞尔曲线的数据平滑算法
2019/12/27 Python
python如何快速生成时间戳
2020/07/21 Python
Django如何批量创建Model
2020/09/01 Python
python中count函数知识点浅析
2020/12/17 Python
css3 transform属性详解
2014/09/30 HTML / CSS
html5中的input新属性range使用记录
2014/09/05 HTML / CSS
设置器与访问器的定义以及各自特点
2016/01/08 面试题
室内拓展活动方案
2014/02/13 职场文书
广播体操口号
2014/06/18 职场文书
2014年党员学习“三严三实”思想汇报
2014/09/15 职场文书
离退休人员聘用协议书
2014/11/24 职场文书
狼牙山五壮士观后感
2015/06/09 职场文书
2015领导干部廉洁自律工作总结
2015/07/23 职场文书