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构造icmp echo请求和实现网络探测器功能代码分享
Jan 10 Python
python的unittest测试类代码实例
Dec 07 Python
Windows下PyCharm安装图文教程
Aug 27 Python
浅谈Python采集网页时正则表达式匹配换行符的问题
Dec 20 Python
Pycharm 设置默认头的图文教程
Jan 17 Python
python调用自定义函数的实例操作
Jun 26 Python
Python获取对象属性的几种方式小结
Mar 12 Python
Python中如何引入第三方模块
May 27 Python
Python decimal模块使用方法详解
Jun 08 Python
Python sorted对list和dict排序
Jun 09 Python
Python大批量搜索引擎图像爬虫工具详解
Nov 16 Python
python re模块和正则表达式
Mar 24 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配合jquery实现增删操作具体实例
2013/12/12 PHP
PHP中几个可以提高运行效率的代码写法、技巧分享
2014/08/21 PHP
php获得网站访问统计信息类Compete API用法实例
2015/04/02 PHP
List Information About the Binary Files Used by an Application
2007/06/18 Javascript
JavaScript 原型与继承说明
2010/06/09 Javascript
jquery zTree异步加载简单实例分享
2013/02/05 Javascript
浅谈jQuery中height与width
2015/07/06 Javascript
无缝滚动的简单实现代码(推荐)
2016/06/07 Javascript
javascript运算符——位运算符全面介绍
2016/07/14 Javascript
jQuery实现的placeholder效果完整实例
2016/08/02 Javascript
Angular 1.x个人使用的经验小结
2017/07/19 Javascript
浅谈Angular4实现热加载开发旅程
2017/09/08 Javascript
vue2.0 根据状态值进行样式的改变展示方法
2018/03/13 Javascript
angularjs实现table表格td单元格单击变输入框/可编辑状态示例
2019/02/21 Javascript
解决vue项目,npm run build后,报路径错的问题
2020/08/13 Javascript
Antd的table组件表格的序号自增操作
2020/10/27 Javascript
Python中decorator使用实例
2015/04/14 Python
利用Python实现命令行版的火车票查看器
2016/08/05 Python
Python+request+unittest实现接口测试框架集成实例
2018/03/16 Python
python hook监听事件详解
2018/10/25 Python
Python3 全自动更新已安装的模块实现
2020/01/06 Python
Python实现井字棋小游戏
2020/03/09 Python
基于python实现操作git过程代码解析
2020/07/27 Python
python代码实现图书管理系统
2020/11/30 Python
matplotlib源码解析标题实现(窗口标题,标题,子图标题不同之间的差异)
2021/02/22 Python
HTML5语义化元素你真的用对了吗
2019/08/22 HTML / CSS
企业军训感想
2014/02/07 职场文书
实习报告评语
2014/04/26 职场文书
英语演讲稿3分钟
2014/04/29 职场文书
防灾减灾活动总结
2014/08/30 职场文书
大学生党员批评与自我批评范文
2014/10/14 职场文书
2015年机关纠风工作总结
2015/05/15 职场文书
火烧圆明园的观后感
2015/06/03 职场文书
常用的Python代码调试工具总结
2021/06/23 Python
Vue2.0搭建脚手架
2022/03/13 Vue.js
netty 实现tomcat的示例代码
2022/06/05 Servers