博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
python代码写名字_【python】【名字】是什么?,Pythonname
阅读量:6269 次
发布时间:2019-06-22

本文共 1384 字,大约阅读时间需要 4 分钟。

前言

在我们浏览一下 python 文件或者自己写 python 代码的时候,时常会在代码的最后加上这样的一行代码

if __name__ == '__main__':

func_name()

那么这一行代码有什么具体的作用呢,不加的话会对我们的结果造成影响吗?

__name__

首先对于用双下划线开头且结尾的变量,在 Python 中被称为

内置变量

,除了

__name__

,我们常见的还有

__init__

__dict__

等等.那么有多少内置变量呢?我们可以通过下面在交互界面输入下面的命令,查看 Python 全部内置变量和内置函数

>>> dir(__builtins__)

结果如下图:

7279ac522424e67e8c5d83be4da5c244.png

不同情况下的

__name__

的值

首先我们需要知道

__name__

在不同情况下会有不同值,它的值取决于我们是如何执行脚本的.我们可以通过几个例子感受一下:

Example 0

# test.py

print(f'__name__ 在 test.py 值为 {__name__}')

然后直接执行一下代码

$ python test.py

然后看一下输出

$ python test.py

__name__ 在 test.py 值为 __main__

在这个例子中,我们发现

__name__

的值是

__main__

Example 1

在这个例子中,我们重新创建一个脚本 test1.py 然后我们在 test1.py 中调用 test.py

# test1.py

import test

print(f'__name__ 在 test1.py 值为 {__name__}')

接着执行一下 test1.py,再看一下输出

python test1.py

__name__ 在 test.py 值为 test

__name__ 在 test1.py 值为 __main__

结果是不是很有意思?整个过程是什么样子的呢?简单的画了一个图

2ea6b079529df01b0db95f2ef6430ef0.png

什么时候使用

__name__

有时候,我们用 Python 写了一个脚本,当我们既希望这个脚本可以单独运行,同样希望它可以在其他的脚本中发挥作用. 这个时候就需要考虑使用

__name__

了. 这里通过改造上面 Example 1的例子来直观感受一下

修改一下 test.py 文件

# test.py

def hello(name):

print(f'Hello,{name}')

if __name__ == '__main__':

hello("test")

再修改一下 test1.py 文件

# test1.py

from test import hello

hello("test1")

然后让我们先尝试直接运行一下

test.py

,很显然这个时候, if 语句条件满足,会输出

Hello,test

$ python test.py

Hello,test

这个时候我们如果运行

test1.py

,程序就会输出

Hello,test1

$ python test1.py

Hello,test1

如果我们把

if __name__ == "__main__"

test.py

去掉会发生什么呢?

$ python test1.py

Hello,test

Hello,test1

参考

转载地址:http://vtspa.baihongyu.com/

你可能感兴趣的文章
Windows Server 2016第三个技术预览版新技术
查看>>
Everything 本地磁盘文件搜索工具下载!
查看>>
Python dict(字典) 详细总结
查看>>
RPF(Reverse Path Forwarding 反向路径转发)技术
查看>>
2016年收到的第一件礼物,被评上微软全球最有价值专家MVP(一)
查看>>
2016中国VR开发者论坛第一期
查看>>
Hyper-V 2016 系列教程5 Hyper-V 服务器基本属性
查看>>
北京、天津工厂自动监测数据爬取
查看>>
第一个python程序简单加法计算器
查看>>
在CentOS下安装Tomcat8
查看>>
Weblogic classloader分析
查看>>
做技术做软件-----如何才能拿到上万的月薪
查看>>
linux 查看当前路径命令:pwd
查看>>
At.js – 用于 Web 应用程序的自动完成库
查看>>
[Android Pro] Android权限设置android.permission完整列表
查看>>
如何对抗硬件断点--- 调试寄存器
查看>>
mybatis学习
查看>>
从不同层面看cocos2d-x
查看>>
Struts2技术详解
查看>>
MFC应用程序向导生成的文件
查看>>