首页 > 编程语言 >Python 中 if __name__ == ‘__main__‘ 的解释

Python 中 if __name__ == ‘__main__‘ 的解释

时间:2024-11-16 10:46:51浏览次数:3  
标签:__ name Python py module1 模块 main

1. 基本概念

   在Python中,`if __name__ == "__main__"`是一种常见的代码结构。`__name__`是一个内置变量,它的值取决于模块是如何被使用的。

   当一个Python脚本被直接运行时,`__name__`的值被设置为`"__main__"`。而当一个模块被另一个模块导入时,`__name__`的值就是该模块的名字(不包括`.py`后缀)。

2. 示例说明

   假设有两个Python文件,`module1.py`和`main.py`。

   在`module1.py`中:

 

def add_numbers(a, b):

         return a + b

     print("This is module1")

   在`main.py`中:

   

 import module1

     if __name__ == "__main__":

         result = module1.add_numbers(3, 5)

         print("The result of adding 3 and 5 is:", result)

   当运行`module1.py`时,控制台会输出`This is module1`。因为此时`__name__`的值为`"__main__"`,模块中的代码都会被执行。

   当运行`main.py`时,首先会导入`module1`。在`module1`被导入的过程中,`module1.py`中的`print("This is module1")`会被执行一次。然后,由于`main.py`中`if __name__ == "__main__"`的判断,只有在`main.py`被直接运行(而不是被当作模块导入到其他文件)时,`if`语句块内的代码才会执行。这样就可以把模块的测试代码或者在主程序中才需要执行的代码放在`if __name__ == "__main__"`语句块中。

3. 实际用途

   模块测试:可以在模块内部编写测试代码,方便对模块中的函数和类进行测试。例如,在开发一个包含多个数学计算函数的模块时,可以在`if __name__ == "__main__"`语句块中编写测试用例来验证函数的正确性。

   代码复用和组织:使得模块既可以被其他程序导入使用其中的函数、类等定义,又可以作为独立的程序运行。这样可以更好地组织代码,提高代码的复用性。例如,一个数据处理模块可以在其他数据分析脚本中被导入使用,同时也可以在模块内部有自己的主程序来演示数据处理的基本流程。

标签:__,name,Python,py,module1,模块,main
From: https://blog.csdn.net/chinansa/article/details/143813916

相关文章

  • Ubuntu20.04安装Mysql
    Ubuntu20.04安装Mysql 1、方法一:下载安装MySQL(安装其他版本) 1.1在官网下载mysql安装包 1.2解压文件 1.3安装 2、方法二:通过apt安装MySQL服务(推荐,会安装最新版) 2.1初始化配置 2.2检查mysql服务状态 3.1配置远程访问 3.2新建数据库和用户 3.3mysql服务命令......
  • 第23课-C++-红黑树的插入与旋转
    ......
  • gin使用JWT验证
    packagejwtauthimport("WchimeGinSystem/conf""errors""time""github.com/golang-jwt/jwt/v5")typeMyClaimsstruct{jwt.RegisteredClaimsUserIdint64}funcCreateToken(userIdint64)......
  • LangChain的Prompt组件详解
    在大语言模型的应用中,Prompt设计是至关重要的。LangChain通过其强大的Prompt组件,提供了灵活且高效的Prompt管理和应用方式。本文将详细探讨LangChain中Prompt的基本概念、模板使用、高级设计以及与Few-ShotLearning的结合。##Prompt的基本概念和应用Prompt在自然语言处理任务......
  • 【有功-无功协调优化】基于改进多目标粒子群优化算法(小生境粒子群算法)的配电网有功-无
     ......
  • 写一个自动构建docker镜像推送至私有仓库并且部署的脚本
    脚本如下#catbuild/docker.sh#!/usr/bin/envbash#获取当前分支名BRANCH=`gitrev-parse--abbrev-refHEAD`#获取git提交的标识符用于Docker镜像的标签BUILD_TAG="$(gitrev-parse--short$BRANCH)"HARBOR_URL="harbor.xxx.com"echo"Tagis${BUILD_TAG}"......
  • 压缩软件加密
    除了WinRAR,以下压缩软件在加密压缩时可以对里面的文件名也进行加密:1.7-Zip:    这是一款免费的开源压缩软件,功能强大且被广泛使用。它支持多种压缩格式,并内置强大的AES-256加密算法。在创建压缩文件时可以设置密码,对整个压缩包包括其中的文件名进行加密保护,安全性较高。......
  • Gin链接Redis
    packagecacheimport("context""fmt""WchimeGinSystem/conf""log""time""github.com/go-redis/redis/v8")varCTX=context.Background()varRDB*redis.Clientfuncc......
  • 考虑产销者的分布式储能容量配置策略(Matlab代码实现)
     ......
  • Hyperf 微服务与 MongoDB 日志记录
    以下是关于在Hyperf微服务中使用MongoDB记录用户操作日志的相关技术详解: 一、Hyperf框架简介Hyperf是基于Swoole协程的高性能PHP微服务框架,它提供了诸多便捷的功能和组件,方便开发者快速构建高效、稳定的微服务应用。在微服务架构中,日志记录是非常重要的一环,有助于排查问题......