python __name__属性的作用

我们通常在看别人写的py程序或者阅读其他的书籍,会在一段代码前面看到
在这里插入图片描述
这么一行代码,那么这行代码到底有什么用?我分享一下我的看法。

首先看书上的介绍:
除了可以再开发环境或命令提示符环境中直接运行,任何python程序文件都可以作为模块导入并使用其中的对象,这也是实现代码复用的重要形式。通过python程序的__name__属性可以识别程序的使用方式,每个python脚本在运行时都会有一个__name__属性,如果脚本作为模块被导入,则其__name__属性的值自动设置为模块名;如果脚本作为程序直接运行,则其__name__属性的值被自动设置为字符串
.在这里插入图片描述
是不是有一些抽象,那么通俗的来说就是,每一个python程序文件都有一个属性名,(你可以理解为是这个程序文件的潜在名字但是是给编译器看的),如果你直接运行该程序文件,它的属性名默认被设置为’__ main__’ ,而如果这个程序文件是在其他程序文件中导入,那么这个程序文件的属性名自动设置为该程序文件的文件名。

也许你看到这,就会产生疑惑,这个有什么用呢??
打个比方,你因为某些需求编写了一个脚本文件1,里面是许多定义的函数或者类,那么你编写函数的时候当然需要测试函数能不能完成你需要的功能,这时候就在测试代码前面加上
在这里插入图片描述
因为是直接运行该程序文件,它的属性名默认被设置为’__ main__’ ,所以上述的if 语句结果为TRUE,所以会运行下面的测试代码,当你在其他程序文件2需要调用脚本文件1时,那么这个程序文件的属性名自动设置为该程序文件的文件名所以此时if语句的结果为false,脚本文件1 的测试代码则不会运行。

我们通过一个例子来了解
我们创建一个程序文件名为
__name__Test.py

def H():
    print("The __name__ is {}".format(__name__))

if __name__ == '__main__':
    H()
    print("!!!")

运行__name__Test.py结果如下:
在这里插入图片描述

那么再创建一个程序文件名字为
__name__Test2.py

import __name__Test

print("Hello word")

运行__name__Test2.py结果如下:
在这里插入图片描述
如果再加上一行语句

import __name__Test
print("Hello word")
__name__Test.H()

运行__name__Test2.py结果如下:
在这里插入图片描述
可以看到在__name__Test2.py文件运行中__name__Test.py文件中的测试代码并没有运行,达到了我们预想的结果。

有点啰嗦,码字不易,希望能帮助到你~

  • 7
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值