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 05 Python
python在指定目录下查找gif文件的方法
May 04 Python
基于python cut和qcut的用法及区别详解
Nov 22 Python
python将四元数变换为旋转矩阵的实例
Dec 04 Python
Python 定义只读属性的实现方式
Mar 05 Python
python实现简单俄罗斯方块
Mar 13 Python
浅谈django不使用restframework自定义接口与使用的区别
Jul 15 Python
Python基础教程之输入输出和运算符
Jul 26 Python
PyCharm2020.1.1与Python3.7.7的安装教程图文详解
Aug 07 Python
Python数据可视化常用4大绘图库原理详解
Oct 23 Python
python中pow函数用法及功能说明
Dec 04 Python
Python爬虫实现selenium处理iframe作用域问题
Jan 27 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者的疑难问答(1)
2006/10/09 PHP
在PHP上显示JFreechart画的统计图方法
2013/11/03 PHP
php强制文件下载而非在浏览器打开的自定义函数分享
2014/05/08 PHP
PHP遍历数组的方法汇总
2015/04/30 PHP
PHP 数据结构队列(SplQueue)和优先队列(SplPriorityQueue)简单使用实例
2015/05/12 PHP
ThinkPHP和UCenter接口冲突的解决方法
2016/07/25 PHP
一个不错的js html页面倒计时可精确到秒
2014/10/22 Javascript
JavaScript实现简单的数字倒计时
2015/05/15 Javascript
jQuery siblings()用法实例详解
2016/04/26 Javascript
基于Vue实现tab栏切换内容不断实时刷新数据功能
2017/04/13 Javascript
详解Node.js中exports和module.exports的区别
2017/04/19 Javascript
详解AngularJS用Interceptors来统一处理HTTP请求和响应
2017/06/08 Javascript
Three.js如何用轨迹球插件(trackball)增加对模型的交互功能详解
2017/09/25 Javascript
nodejs基础之常用工具模块util用法分析
2018/12/26 NodeJs
vue实现的上拉加载更多数据/分页功能示例
2019/05/25 Javascript
利用原生JS实现data方法示例代码
2019/05/28 Javascript
Python数组遍历的简单实现方法小结
2016/04/27 Python
Python文件操作,open读写文件,追加文本内容实例
2016/12/14 Python
Python比较2个时间大小的实现方法
2018/04/10 Python
python中cPickle类使用方法详解
2018/08/27 Python
浅析Python函数式编程
2018/10/06 Python
Python如何操作office实现自动化及win32com.client的运用
2020/04/01 Python
python怎么调用自己的函数
2020/07/01 Python
解决python 虚拟环境删除包无法加载的问题
2020/07/13 Python
Python Tricks 使用 pywinrm 远程控制 Windows 主机的方法
2020/07/21 Python
html5本地存储_动力节点Java学院整理
2017/07/12 HTML / CSS
学生个人的自我评价分享
2013/11/05 职场文书
法学毕业生自我鉴定
2013/11/08 职场文书
高中生学期学习自我评价
2014/02/24 职场文书
给校长的建议书100字
2014/05/16 职场文书
关爱残疾人演讲稿
2014/05/24 职场文书
研究生求职自荐书
2014/06/23 职场文书
太行山上观后感
2015/06/05 职场文书
2016教师读书思廉心得体会
2016/01/23 职场文书
CSS 新特性 contain控制页面的重绘与重排问题
2021/04/30 HTML / CSS
SQL中的连接查询详解
2022/06/21 SQL Server