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 相关文章推荐
python开发简易版在线音乐播放器
Mar 03 Python
利用Python将时间或时间间隔转为ISO 8601格式方法示例
Sep 05 Python
Python探索之修改Python搜索路径
Oct 25 Python
python中找出numpy array数组的最值及其索引方法
Apr 17 Python
对python 中class与变量的使用方法详解
Jun 26 Python
python 求某条线上特定x值或y值的点坐标方法
Jul 09 Python
pandas中ix的使用详细讲解
Mar 09 Python
python列表删除和多重循环退出原理详解
Mar 26 Python
python和JavaScript哪个容易上手
Jun 23 Python
使用python修改文件并立即写回到原始位置操作(inplace读写)
Jun 28 Python
Python通用唯一标识符uuid模块使用案例
Sep 10 Python
python判断字符串以什么结尾的实例方法
Sep 18 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服务器实现多session并发运行
2006/10/09 PHP
php 随机记录mysql rand()造成CPU 100%的解决办法
2010/05/18 PHP
Smarty中的注释和截断功能介绍
2015/04/09 PHP
eclipse php wamp配置教程
2016/06/30 PHP
php远程请求CURL实例教程(爬虫、保存登录状态)
2020/12/10 PHP
用js计算页面执行时间的函数
2006/12/07 Javascript
jQuery的Ajax的自动完成功能控件简要说明
2013/02/22 Javascript
Extjs4.0设置Ext.data.Store传参的请求方式(默认为GET)
2013/04/02 Javascript
jqGrid日期格式的判断示例代码(开始日期与结束日期)
2013/11/08 Javascript
javascript字符串循环匹配实例分析
2015/07/17 Javascript
AngularJS服务service用法总结
2016/12/13 Javascript
深入理解Node中的buffer模块
2017/06/03 Javascript
详解Vue2中组件间通信的解决全方案
2017/07/28 Javascript
VSCode 配置React Native开发环境的方法
2017/12/27 Javascript
web前端vue实现插值文本和输出原始html
2018/01/19 Javascript
animate.css在vue项目中的使用教程
2018/08/05 Javascript
nodejs基础之多进程实例详解
2018/12/27 NodeJs
vue动态合并单元格并添加小计合计功能示例
2020/11/26 Vue.js
[53:52]OG vs EG 2018国际邀请赛淘汰赛BO3 第二场 8.23
2018/08/24 DOTA
Python中使用PIL库实现图片高斯模糊实例
2015/02/08 Python
Python简单删除目录下文件以及文件夹的方法
2015/05/27 Python
Python基于回溯法子集树模板解决马踏棋盘问题示例
2017/09/11 Python
浅谈python3发送post请求参数为空的情况
2018/12/28 Python
Python对象与引用的介绍
2019/01/24 Python
python实现两张图片的像素融合
2019/02/23 Python
Python基于xlutils修改表格内容过程解析
2020/07/28 Python
装潢设计专业推荐信模板
2013/11/26 职场文书
小学生新学期寄语
2014/01/19 职场文书
导游个人求职信范文
2014/03/23 职场文书
机械电子工程专业自荐书
2014/06/10 职场文书
2014年民主评议党员个人总结
2014/09/24 职场文书
幼儿园2014年度工作总结
2014/11/10 职场文书
2015年党员自评材料
2014/12/17 职场文书
强烈推荐:小学生:暑假作息时间表(值得收藏)
2019/07/09 职场文书
Redis基于Bitmap实现用户签到功能
2021/06/20 Redis
方法汇总:Python 安装第三方库常用
2022/04/26 Python