我是靠谱客的博主 酷炫毛豆,最近开发中收集的这篇文章主要介绍python中 “__name__“的实际应用引言一、“name” 的作用二、实际项目的应用结语,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

目录

  • 引言
  • 一、"__name__" 的作用
  • 二、实际项目的应用
    • 应用情境
    • 解决方案
  • 结语

引言

很多Python源码中,会有一句if __name__ == '__main__':(如图)。

#代码示例:
a={"1":[1,3], "2":[3,5], "3":[4,6]}
b= "abcdefghijk"
c="de"
def matchTest(key):
    res = eval('b'+str(a[key]).replace(',',':'))
    print(res)
if __name__ == '__main__':
    matchTest('1')

本文将介绍__name__ 的作用,及实际项目开发中的应用。


一、“name” 的作用

1、 __name__是python的一个内置类属性,它天生就存在于一个 python 程序中。

在这里插入图片描述


2、直接运行python程序时,__name__的值为“__main__”
在这里插入图片描述

3、而在其它程序中导入.py文件运行时,__name__的值为文件名,即模块名

在这里插入图片描述


4、 因此依据该特性,最直接的作用就是,区分py文件直接被运行,还是被引入其他程序中。


二、实际项目的应用

应用情境

项目需求生成组合列表的模块,程序编写过程,通常会在程序中写上一些测试脚本,来验证程序是否正确,例如图中代码:
在这里插入图片描述
那么这样就产生了一个问题,同事在调用这个模块的时候,测试内容也会打印出来。
当然可以在提交代码前,删除这些用于测试的代码。
不过通常提交以后,可能会因为一些BUG,或者需求本身进行了调整,代码需要重新修改,那么测试代码也可能被再次添加。如此反复自然就徒增一些代码量。


解决方案

只要在测试代码前面加上:if __name__ == '__main__':
那么,编写调试过程直接运行该模块时__name__ "的值为__main__ ",即测试内容被执行。
而同事在导入该模块,__name__ ""的值为py文件名,测试内容则不会被执行。完美的解决了这个问题。

在这里插入图片描述


结语

刚接触Python,练习编写的程序/模块通常是直接运行,该语句没有起到实质性的作用。因此会对其作用有些困惑。有模块的概念,自己尝试做一些模块封装,就会很好理解了。

最后

以上就是酷炫毛豆为你收集整理的python中 “__name__“的实际应用引言一、“name” 的作用二、实际项目的应用结语的全部内容,希望文章能够帮你解决python中 “__name__“的实际应用引言一、“name” 的作用二、实际项目的应用结语所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(58)

评论列表共有 0 条评论

立即
投稿
返回
顶部