if __name__ == ‘__main__‘: 在 Python 中的作用

ops/2024/9/24 11:47:52/

Python

  1. Python 是一种广泛使用的高级编程语言,它以其易读性和简洁的语法而闻名。Python 支持多种编程范式,包括面向对象、命令式、函数式和过程式编程。它由 Guido van Rossum 创建,并在 1991 年首次发布。

  2. Python 的一些关键特性包括:

    1. 可读性强:Python 的语法设计得非常清晰,使得代码易于阅读和理解。
    2. 跨平台:Python 可以在多种操作系统上运行,如 Windows、macOS 和 Linux。
    3. 解释型语言:Python 是一种解释型语言,这意味着源代码在运行时会被解释器逐行执行。
    4. 动态类型:Python 是动态类型的,这意味着你不需要在编写代码时声明变量的类型。
    5. 内存管理:Python 有自动内存管理和垃圾回收机制,这使得内存管理更加容易。
    6. 丰富的标准库:Python 有一个庞大的标准库,提供了许多内置的模块和函数,用于执行常见的任务。
    7. 广泛的社区支持:Python 有一个活跃的开发者社区,提供了大量的第三方库和框架。
    8. 适用于多种应用:Python 可用于开发各种类型的应用程序,包括 Web 开发、数据科学、人工智能、科学计算、自动化脚本等。
  3. Python 的版本主要有 Python 2 和 Python 3。Python 2 在 2020 年已经停止支持,目前推荐使用的是 Python 3。

  4. Python官网:https://www.python.org/
    在这里插入图片描述

解释

  1. 在 Python 中,if __name__ == '__main__': 是一个常用的模式,用于确定代码块是否应该被执行。这个模式通常用于模块中,使得模块既可以被导入使用,也可以作为脚本直接运行。

    • 作为模块:如果模块被其他 Python 脚本导入,__name__ 变量会被设置为模块的名字,而不是 '__main__'。因此,if __name__ == '__main__': 后的代码块不会被执行。
    • 作为脚本:如果模块是作为脚本直接运行的,__name__ 变量会被设置为 '__main__'。这时,if __name__ == '__main__': 后的代码块会被执行。
  2. 这种模式使得模块可以灵活地被重用,同时提供了一个入口点,用于当模块被直接运行时执行一些特定的操作。

优点

使用 if __name__ == '__main__': 的主要优点是:

  • 代码重用:你可以将函数和类定义在同一个文件中,然后根据需要将它们作为模块导入到其他脚本中。
  • 避免重复执行:当你的模块被导入时,你不希望执行某些代码(如主程序逻辑),这样可以避免不必要的重复执行。

示例

  1. Python demo
python"># 这是一个模块,可以被其他脚本导入def my_function():print("This is a function in the module.")if __name__ == '__main__':# 这段代码只有在模块被直接运行时才会执行print("This module is being run as a script.")my_function()
  1. 作为脚本直接运行:python my_module.py,输出如下,可以看到两段文字都打印出来了。
    在这里插入图片描述
  2. 作为模块,在另外一个脚本main.py中导入该模块,运行python main.py,输出如下,看到只输出This is a function in the module.,而不会看到 This module is being run as a script. 这条信息,因为 if __name__ == '__main__': 后的代码块没有被执行。
python">import my_modulemy_module.my_function()

在这里插入图片描述


http://www.ppmy.cn/ops/115266.html

相关文章

一篇大模型Agent记忆机制研究综述

转自:PaperAgent 基于大型语言模型(LLM)的智能体最近吸引了研究和工业社区的广泛关注。与原始的大型语言模型相比,基于LLM的智能体以其自我进化能力为特色,这是解决需要长期和复杂智能体-环境交互的现实世界问题的基础…

MATLAB在无线传感器网络设计中的应用与实践

无线传感器网络(WSN)因其在环境监测、智能交通、农业和医疗等领域的广泛应用而备受关注。MATLAB作为一种强大的数学建模和仿真工具,为WSN的设计、仿真和优化提供了丰富的工具箱和函数。本文将详细介绍MATLAB在无线传感器网络设计中的应用&…

Spring高手之路24——事务类型及传播行为实战指南

文章目录 1. 编程式事务(不推荐)2. 声明式事务(推荐)3. 事务的传播行为(复杂混合事务场景及时序图说明)3.1 NESTED和REQUIRES_NEW传播行为的区别 1. 编程式事务(不推荐) 定义&#…

科研小白入门工具

三、科研绘图 1.流程图绘制工具:powerpoint、亿图图示、visio、draw.io 2.绘制标准:布局合理、色彩鲜明、字体大小、矢量输出 矢量图绘制推荐流程:亿图图示绘制--visio--word--pdf无损放大 3.文章插图:excel、origin、matlab、…

【html】基础(一)

本专栏内容为:前端专栏 记录学习前端,分为若干个子专栏,html js css vue等 💓博主csdn个人主页:小小unicorn ⏩专栏分类:js专栏 🚚代码仓库:小小unicorn的代码仓库🚚 &am…

电源设计的艺术:从底层逻辑到工程实践

在电子工程的世界里,电源设计是核心中的核心。它不仅是电子设备的能量源泉,更是整个系统稳定运行的基石。随着科技的不断进步,电源设计的要求也越来越高,从效率、稳定性到体积、成本,每一个维度都是工程师们不断追求的…

如何在算家云搭建SDXL-Lightning(图像生成)

一、SDXL-Lightning简介 SDXL-Lightning 项目是由字节跳动开发的一个创新性的 AI 图像生成项目,该项目通过采用全新的蒸馏战略,优化了扩散模型,实现了从文字到高清图像的快速、高质量生成。以下是对 SDXL-Lightning 项目的详细介绍&#xff…

【第十六章:Sentosa_DSML社区版-机器学习之生存分析】

【第十六章:Sentosa_DSML社区版-机器学习之生存分析】 16.1 加速失效时间回归 1.算子介绍 加速失效时间回归模型Accelerated failure time (AFT)是一个监督型参数化的回归模型,它可以处理删失数据。它描述了一个生存时间的对数模型,所以它通…