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 相关文章推荐
SublimeText 2编译python出错的解决方法(The system cannot find the file specified)
Nov 27 Python
windows下wxPython开发环境安装与配置方法
Jun 28 Python
Django1.7+python 2.78+pycharm配置mysql数据库教程
Nov 18 Python
自动化Nginx服务器的反向代理的配置方法
Jun 28 Python
python版本的仿windows计划任务工具
Apr 30 Python
Python判断变量名是否合法的方法示例
Jan 28 Python
python爬虫实现中英翻译词典
Jun 25 Python
python实现将列表中各个值快速赋值给多个变量
Apr 02 Python
Python while true实现爬虫定时任务
Jun 08 Python
python db类用法说明
Jul 07 Python
PyQt5的相对布局管理的实现
Aug 07 Python
Python3+PyCharm+Django+Django REST framework配置与简单开发教程
Feb 16 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
桌面中心(三)修改数据库
2006/10/09 PHP
在数据量大(超过10万)的情况下
2007/01/15 PHP
php实现单链表的实例代码
2013/03/22 PHP
php在数据库抽象层简单使用PDO的方法
2015/11/03 PHP
Laravel中的Blade模板引擎示例详解
2017/10/10 PHP
js 编码转换 gb2312 和 utf8 互转的2种方法
2013/08/07 Javascript
jQuery父级以及同级元素查找介绍
2013/09/04 Javascript
nodejs中使用monk访问mongodb
2014/07/06 NodeJs
js文件包含的几种方式介绍
2014/09/28 Javascript
JS扩展方法实例分析
2015/04/15 Javascript
XML文件转化成NSData对象的方法
2015/08/12 Javascript
Node.js操作Firebird数据库教程
2016/03/04 Javascript
JS针对浏览器窗口关闭事件的监听方法集锦
2016/06/24 Javascript
DWR3 访问WEB元素的两种方法实例详解
2017/01/03 Javascript
jQuery实现贪吃蛇小游戏(附源码下载)
2017/03/04 Javascript
Javascript实现信息滚动效果
2017/05/18 Javascript
JavaScript如何获取到导航条中HTTP信息
2017/10/10 Javascript
解决Vue使用swiper动态加载数据,动态轮播数据显示白屏的问题
2018/09/27 Javascript
element ui table 增加筛选的方法示例
2018/11/02 Javascript
如何根据业务封装自己的功能组件
2019/04/19 Javascript
微信小程序 自定义弹窗实现过程(附代码)
2019/12/05 Javascript
python控制nao机器人身体动作实例详解
2019/04/29 Python
Python实现直方图均衡基本原理解析
2019/08/08 Python
将自己的数据集制作成TFRecord格式教程
2020/02/17 Python
Python数据可视化图实现过程详解
2020/06/12 Python
解决TensorFlow程序无限制占用GPU的方法
2020/06/30 Python
馥绿德雅美国官方网站:Rene Furterer头皮护理专家
2019/05/01 全球购物
北欧最好的童装网上商店:Babyshop
2019/09/15 全球购物
经典c++面试题二
2015/08/14 面试题
实习生体会的自我评价范文
2013/11/28 职场文书
理发店策划方案
2014/06/05 职场文书
国庆节促销广告语2014
2014/09/19 职场文书
法人单位适用的授权委托书
2014/09/19 职场文书
污水处理保证书
2015/05/09 职场文书
《梅花魂》教学反思
2016/02/18 职场文书
vue中this.$http.post()跨域和请求参数丢失的解决
2022/04/08 Vue.js