[Python] if __name__ == ‘__main__‘的作用

这篇具有很好参考价值的文章主要介绍了[Python] if __name__ == ‘__main__‘的作用。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

在编写Python程序的时候,总是习惯性的在文件的末尾添加这么一段代码

if __name__ == "__main__":
    ...

从上述代码可以看出if __name__ == "__main__":是个条件语句,判断__name__这个变量是否等于__main__

我们在脚本demo.py文件中执行dir()函数,获取当前模块的变量名,并判断当前模块是否包含__name__变量

# demo.py
print(dir())
# True
print('__name__' in dir())

上述脚本文件中我们没有定义任何变量,从而可知道__name__是Python内置的一个属性 

我们打印__name__,看看该变量的值

# demo.py
print(dir())
# True
print('__name__' in dir())

print('__name__:',__name__)  # __name__: __main__

从上述结果可以了解到变量__name__的值为__main__,我们继续在文件的末尾添加 if __name__ == "__main__":代码

# demo.py
# True
print('__name__' in dir())

print('__name__:',__name__)  

print('Hello123')

if __name__ == '__main__':
    print('Hello456')

运行结果如下所示

True
__name__: __main__
Hello123
Hello456

提示Tips

__name__ 是个变量,每个.py文件都有这个变量,'__main__ ' 是个普通的字符串,不是变量,但可以作为变量的值进行使用

我们在同一文件夹下创建一个名为import_demo.py脚本文件,输入如下代码

# import_demo.py
import demo

上述脚本运行结果如下所示

True
__name__: demo
Hello123

我们从上述结果可以发现,运行import_demo.py脚本后,demo.py脚本中的__name__变量值是'demo',由于__name__变量值不再是'__main__',所以 __name__ == "__main__"的结果是False,不执行print('Hello456')操作

提示Tips

变量__name__所在的 .py 文件没被别的 .py 文件调用时,其值是'__main__ ' 

变量__name__所在的 .py 文件被别的 .py 文件调用时,它的值就不再是 '__main__ '了,而是变成它所在 .py的文件名

练习案例

定义一个实现加法功能的py代码

# add_.py
def add(a, b):
    return a + b

res = add(2, 3)
print(res)

定义另一个py代码,导入add_.py中的add方法,类似模块导入

# use_.py
from add_ import add

res = add(2, 3)

print(f'结果是:{res}')  

运行结果如下所示

5
结果是:5

我们只想要一个结果5,但是结果输出两个,我们可以把add_.py代码中的测试代码,放在if __name__== '__main__':中,use_.py执行add()就不会执行测试代码

# add_.py

def add(a, b):
    return a + b

if __name__=='__main__':
      res = add(2, 3)
      print(res)

运行use_.py,输出结果如下所示

结果是:5

if __name__ == '__main__'的作用

python文件通常有两种使用方法:

① 作为脚本直接执行

② import到其他的 python 脚本中被调用执行

if __name__ == '__main__':的作用就是控制这两种情况执行代码的过程,在 if __name__ == '__main__':下的代码只有在第一种情况下才会被执行,而 import 到其他脚本中是不会被执行的文章来源地址https://www.toymoban.com/news/detail-425368.html

到了这里,关于[Python] if __name__ == ‘__main__‘的作用的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • SQL编写:十个在实践中养成的好习惯

    写SQL是数据分析和数据库管理的重要技能之一。养成以下好习惯可以帮助你编写高效、可靠和易于维护的SQL语句: 1. 使用格式化和注释:在编写SQL查询时,使用适当的缩进和换行来增加可读性。添加注释来解释查询的目的、步骤或任何重要的决策。这将使你和其他人更容易理

    2024年03月10日
    浏览(41)
  • 轮询的时候,总是报500服务器无法处理大量的请求

    HTTP 500 错误通常表示服务器内部错误。这意味着后端服务器出现了一些问题,导致它无法处理请求。如果你在调用任务状态的接口时总是遇到这个错误,可能有以下一些原因: 1.后端代码出现了错误,导致服务器无法正确处理请求。你可以查看服务器的日志,找出具体的错误

    2023年04月14日
    浏览(78)
  • v-if 和 v-show的区别是什么? 什么时候使用v-if更好? 什么时候用v-show更好?

    v-show 是通过控制display属性来进行DOM的显示与隐藏,主要用于频繁操作; v-if 是真正意义上的条件渲染(销毁和创建元素),条件为true时创建DOM,条件为false时销毁DOM,主要用于大量数据渲染到页面(符合条件就将数据渲染),频繁使用会消耗性能。 性能区别: 1、v-if有更高

    2024年02月11日
    浏览(50)
  • 使用动态sql时,if标签不起作用

    目录 场景: 问题分析: 问题解决: 简单讲一下应用场景 我拿到一个项目,完成后端数据处理,在进行可选条件查询时,使用动态sql  在mapper.xml中我先是这么写的  然后,就出现if标签失效的情况,关键是它有时候也会返回到前端数据,给我都搞蒙了 反复查看,加上网搜索

    2024年01月23日
    浏览(41)
  • springboot启动的时候报错:Error creating bean with name ‘********‘

    今天写了一个自定义sql查询,在Test文件夹测试的时候没有问题,但是但启动项目的时候报错,报错图片如下: 检查了很多地方,发现不是mapperscan,或者是配置档命名空间的问题,而是pom.xml里面的一个低级错误 这段代码在springboot的test文件夹里面编写,因为使用的是idea,当

    2024年02月06日
    浏览(55)
  • python编写一个小程序,python入门小程序编写

    大家好,小编来为大家解答以下问题,python编写一个小程序,python入门小程序编写,现在让我们一起来看看吧! 大家好,小编为大家解答python简单易懂的小程序的问题。很多人还不知道python入门小程序编写,现在让我们一起来看看吧! 20个小段程序 1.字符串翻转 运行结果:

    2024年02月03日
    浏览(43)
  • 解决 调用yolov5的时候, No module named ‘utils‘ 的问题

    这个是因为打开目录不是yolov5的根目录,所以找不到yolov5文件夹下的utils模块 例如是这种情况:在运行detector.py时,yolov5作为一个模块被调用,会显示这个问题。 修改sys.path的方法可能有用,但麻烦且不一定成功,因为detector.py还要依赖上面两个文件夹 建议直接把文件夹名字

    2024年02月12日
    浏览(46)
  • python编写小程序有界面,python编写小程序的运行

    大家好,小编为大家解答python编写小程序怎么看代码的的问题。很多人还不知道python编写小程序的运行,现在让我们一起来看看吧!   Python第一个简单的小游戏 temp = input(\\\"请猜一猜姐姐的幸运数字是: \\\") guess = int(temp) if guess == 6: # 此处是需要使用双等号,表示等于,若使用单

    2024年02月14日
    浏览(49)
  • 也许是时候停止编写详细的操作手册了

    详细的操作手册意味着系统缺乏自动化的支持,应该尽量把编写详细手册的精力放在优化系统自动化能力上。原文: Stop Writing Great Runbooks 别再编写细致的手册了,相反,解决生产问题。 当出现生产问题,就会有人需要在线提供帮助。在生产环境中处理问题的常见方法如下: 确

    2024年01月25日
    浏览(30)
  • python编写小程序小游戏,python编写小程序的运行

    本篇文章给大家谈谈python编写小程序需要注意的地方,以及python编写小程序怎么看代码的,希望对各位有所帮助,不要忘了收藏本站喔。 Source code download: 本文相关源码 python可以开发小程序吗 谷歌人工智能写作项目:小发猫 用python可以做微信小程序吗? 其实微信小程序作为

    2024年03月12日
    浏览(46)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包