Python中的 if __name__ == ‘__main__

news/2024/11/8 20:03:33 标签: python, 开发语言

在Python中,if __name__ == '__main__': 这行代码有一个特定的用途和含义。为了理解它,我们需要先了解Python中的__name__变量以及Python脚本是如何执行的。

__name__变量

每个Python模块(python文件)都有一个内置的属性__name__。当模块被直接运行时,__name__的值会被设置为'__main__'。但是,如果模块是被导入到其他模块中的,__name__的值则会被设置为该模块的名字。

直接运行与导入的区别

  • 直接运行:当你直接运行一个Python文件(比如通过命令行python script.py),这个文件中的__name__会被设置为'__main__'
  • 被导入:如果你从另一个Python文件中通过import语句导入这个模块,那么在这个导入的模块中,__name__的值将是该模块的名字(比如script,如果导入语句是import script)。

if __name__ == '__main__':的作用

这个条件语句的作用是检查该模块是被直接运行还是被导入到其他模块中。如果这个条件为真(即模块被直接运行),那么位于这个条件语句下的代码块将会被执行。如果这个条件为假(即模块是被导入的),那么这部分代码将不会被执行。

使用场景

这种用法非常有用,因为它允许一个模块即可作为可执行脚本直接运行(执行一些操作,比如运行测试或者启动一个程序),也可以作为模块被其他脚本导入使用(提供函数、类等)。

python"># mymodule.py

def my_function():
    print("Hello from my_function!")

if __name__ == '__main__':
    # 这部分代码只有在mymodule.py被直接运行时才会执行
    print("mymodule is being run directly")
    my_function()
else:
    # 这部分代码在mymodule.py被导入时不会执行
    print("mymodule has been imported")

如果你直接运行mymodule.py,输出将会是:

 

mymodule is being run directly

Hello from my_function!

如果你从另一个Python文件中导入mymoduleimport mymodule),输出将会是:

mymodule has been imported


http://www.niftyadmin.cn/n/5744377.html

相关文章

ESLint 使用教程(一):从零配置 ESLint

前言 在现代前端开发中,代码质量和风格一致性是团队合作和项目维护的重要因素。而 ESLint 作为一款强大的 JavaScript 静态代码分析工具,能够帮助开发者发现和修复代码中的潜在问题。本文将详细介绍 ESLint 的常用规则配置,并结合实际应用场…

如何下载无水印的TikTok视频

随着TikTok的全球风靡,越来越多的人加入到这个平台,上传自己的创意短视频与世界分享。TikTok还成为了信息传播、娱乐消遣和营销推广的重要工具。许多人也希望能够下载喜欢的视频保存下来,尤其是没有水印的视频,方便用于二次创作或…

AI大模型引领软件开发变革:探索流程重塑、优势挑战与未来发展趋势

“AI大模型引领软件开发变革:探索流程重塑、优势挑战与未来发展趋势” 方向一:流程与模式介绍【传统软件开发 VS AI参与的软件开发】 在传统软件开发流程中,软件开发通常遵循一系列固定的步骤,包括需求分析、系统设计、编码、测…

PySide6百炼成真系列(1)

文章目录 基础框架三种最基础控件QPushButtonQLableQLineEdit 安装Pyside6 pip install pyside6 -i https://pypi.tuna.tsinghua.edu.cn/simpleZeal一款离线文档阅读器,可自行下载有关编程的参考文档 官网下载 具体下载问题可以查看这篇https://blog.csdn.net/qq_3…

成语词典大全 1.8.3 |强大的成语词典软件,趣味学习成语

成语词典大全是一款功能丰富的成语学习软件,专为安卓用户设计。它集成了成语搜索查询、成语学习、名著典故中的成语、成语分类索引、每日成语、看图猜成语、表情猜成语、成语猜题挑战等多种功能。软件收录了超过5万条成语,每日成语功能让用户每天学习一个…

【Kafka】Windows+KRaft部署指南

【Kafka】WindowsKRaft部署指南 摘要本地环境说明官网快速开始修改config/kraft/server.properties初始化数据存储目录启动 测试创建topic创建生产者创建消费者 FAQ输入行太长。命令语法不正确。问题描述解决方案 参考资料 摘要 Kafka是一种高吞吐量的分布式发布订阅消息系统&…

挑选BPM软件秘籍,揭秘六大必备功能

BPM软件助力企业优化管理,需具备流程设计、角色权限定义、数据管理、系统集成、监测分析、定制扩展等功能。BPM管理员作用关键,低代码平台如ZohoCreator可简化这些工作。 您选择的任何业务流程管理软件都应该为您的管理员提供以下功能: 1、流…

数组类算法【leetcode】

704. 二分查找 2024.11.06 题目:给定一个 n 个元素有序的(升序)整型数组 nums 和一个目标值 target ,写一个函数搜索 nums 中的 target,如果目标值存在返回下标,否则返回 -1。力扣题目链接 二分查找 用…