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实现HTTP协议下的文件下载方法总结
Apr 20 Python
Python实现的读取电脑硬件信息功能示例
May 30 Python
python中的for循环
Sep 28 Python
对python3标准库httpclient的使用详解
Dec 18 Python
详解Python 定时框架 Apscheduler原理及安装过程
Jun 14 Python
python 二维矩阵转三维矩阵示例
Nov 30 Python
python实现自动化报表功能(Oracle/plsql/Excel/多线程)
Dec 02 Python
Python for循环通过序列索引迭代过程解析
Feb 07 Python
Django项目uwsgi+Nginx保姆级部署教程实现
Apr 19 Python
在Ubuntu 20.04中安装Pycharm 2020.1的图文教程
Apr 30 Python
通过实例简单了解Python sys.argv[]使用方法
Aug 04 Python
python实现双人五子棋(终端版)
Dec 30 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程序员最常犯的11个MySQL错误小结
2010/11/20 PHP
PHP多线程之内部多线程实例分析
2015/03/09 PHP
php求今天、昨天、明天时间戳的简单实现方法
2016/07/28 PHP
用js自动判断浏览器分辨率的代码
2007/01/28 Javascript
jquery图片上下tab切换效果
2011/03/18 Javascript
图标线性回归斜着移动到指定的位置
2013/08/16 Javascript
详解jquery事件delegate()的使用方法
2016/01/25 Javascript
javascript HTML5 canvas实现打砖块游戏
2020/06/18 Javascript
JS基于构造函数实现的菜单滑动显隐效果【测试可用】
2016/06/21 Javascript
Angular.js自动化测试之protractor详解
2017/07/07 Javascript
vue实现仿淘宝结账页面实例代码
2017/11/08 Javascript
详解vue-cli项目中的proxyTable跨域问题小结
2018/02/09 Javascript
图文介绍Vue父组件向子组件传值
2018/02/17 Javascript
基于vue中css预加载使用sass的配置方式详解
2018/03/13 Javascript
详解Vue demo实现商品列表的展示
2019/05/07 Javascript
浅谈 Webpack 如何处理图片(开发、打包、优化)
2019/05/15 Javascript
vue+Element实现搜索关键字高亮功能
2019/05/28 Javascript
python解析文件示例
2014/01/23 Python
Python中文件遍历的两种方法
2014/06/16 Python
如何利用python制作时间戳转换工具详解
2018/09/12 Python
对python模块中多个类的用法详解
2019/01/10 Python
python感知机实现代码
2019/01/18 Python
基于python和flask实现http接口过程解析
2020/06/15 Python
python list的index()和find()的实现
2020/11/16 Python
HTTP状态码详解
2021/03/18 杂记
CSS3绘制六边形的简单实现
2016/08/25 HTML / CSS
HTML5 视频播放(video),JavaScript控制视频的实例代码
2018/10/08 HTML / CSS
匡威比利时官网:Converse Belgium
2017/04/13 全球购物
Qoo10台湾站:亚洲领先的在线市场
2018/05/15 全球购物
Linux管理员面试题 Linux admin interview questions
2014/11/01 面试题
周年庆典邀请函范文
2014/01/24 职场文书
接待员岗位责任制
2014/02/10 职场文书
党日活动总结
2014/05/07 职场文书
2014年少先队工作总结
2014/12/03 职场文书
合作与交流自我评价
2015/03/09 职场文书
TV动画《史上最强大魔王转生为村民A》番宣CM公布
2022/04/01 日漫