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

news2024/12/30 2:56:41

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
# 这是一个模块,可以被其他脚本导入

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__': 后的代码块没有被执行。
import my_module

my_module.my_function()

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2160349.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

MacOS Catalina 从源码构建Qt6.2开发库之02: 配置QtCreator

安装Qt-creator-5.0.2 在option命令中配置Qt Versions指向 /usr/local/bin/qmake6 Kits选入CLang

解决银河麒麟桌面操作系统V10SP1 SSH连接“connection reset by ip地址 port 22”问题

解决银河麒麟桌面操作系统V10SP1 SSH连接“connection reset by ip地址 port 22”问题 💖The Begin💖点点关注,收藏不迷路💖 遇到SSH连接银河麒麟V10SP1时“connection reset by ip地址 port 22”的错误,可以尝试以下步…

GNU链接器(LD):设置入口点(ENTRY命令)的用法及实例解析

0 参考资料 GNU-LD-v2.30-中文手册.pdf GNU linker.pdf1 前言 一个完整的编译工具链应该包含以下4个部分: (1)编译器 (2)汇编器 (3)链接器 (4)lib库 在GNU工具链中&…

#嵌入式笔面经分享#科大讯飞公司嵌入式硬件面经(第1面)

DNS是什么 DNS(Domain Name System)是一种用于将域名转换为IP地址的分布式命名系统。它充当 7.12 440 一个组产出最 7.12 440 一个组产出最多的是组长,是管理,这个组不正常。​出一个小学数学应用题:在 OSI七层模型?…

基于二自由度汽车模型的汽车质心侧偏角估计

一、质心侧偏角介绍 在车辆坐标系中,质心侧偏角通常定义为质心速度方向与车辆前进方向的夹角。如下图所示,u为车辆前进方向,v为质心速度方向,u和v之间的夹角便是质心侧偏角。 质心侧偏角的作用有如下三点: 1、稳定性…

什么是反射,反射用途,spring哪些地方用到了反射,我们项目中哪些地方用到了反射

3分钟搞懂Java反射 一、反射是什么 在Java中,反射(Reflection)是一种强大的工具,它允许程序在运行时获取和操作类、接口、构造器、方法和字段等。反射是Java语言的一个重要特性,它为开发人员提供了许多灵活性&#xf…

PHP探索校园新生态校园帮小程序系统小程序源码

探索校园新生态 —— 校园帮小程序系统,让生活更精彩! 🌱【开篇:走进未来校园,遇见新生态】🌱 你是否厌倦了传统校园的繁琐与单调?是否渴望在校园里也能享受到便捷、智能的生活体验&#xff1…

APS软件:生产计划排程的秩序守护者

生产计划制定 (1)APS排程是一种高度精细化的生产计划制定方法,它精准地计算出不同产品不同工序生产任务的起始、结束时间、每段工序加工时间内的生产数量以及产品的整个生产周期,同时全面考量设备性能、人员配置、物料供应等关键…

全球地图——为论文增色

✨全球地图是全球研究常用的结果表现形式,随着学科交叉,很多非地学(环境、化学、生物等)的顶刊也会运用到全球地图,为结果增色不少 ✨我总结了一些顶刊 (NSP,NG,NC)最新发布的相关图表✨ 这些图…

st7735调试记录

由于该模块陪我已经超过十年,最近想起来学习下lvgl,于是乎将其拿出来,尝试使能该模块从而学会lvgl 第一步肯定是找到资料确定下该模块是否好用。于是到网络上找到如下资料进行验证: https://pan.baidu.com/s/1CEunLuGUqLABR6I0UZ…

结构设计模式 -装饰器设计模式 - JAVA

装饰器设计模式 一. 介绍二. 代码示例2.1 抽象构件(Component)角色2.2 具体构件(Concrete Component)角色2.3 装饰(Decorator)角色2.4 具体装饰(Concrete Decorator)角色2.5 测试 结…

mysql 报 ERROR 1273: Unknown collation: ‘utf8mb4_0900_ai_ci‘ 的处理

1、数据库sql是mysql8的导出的,本机上安装的还是5.7的版本,然后导入sql,直接就报错。 2、mysql的下载地址: MySQL :: Download MySQL Community Server 3、报错截图: 4、重新选择一个collation就可以了,…

MoNA:复用跨模态预训练模型,少样本模态的福音 | ICML‘24

跨模态转移旨在利用大型预训练模型来完成可能不属于预训练数据模态的任务。现有的研究在将经典微调扩展到跨模态场景方面取得了一定的成功,但仍然缺乏对模态差距对转移的影响的理解。在这项工作中,进行了一系列关于转移过程中源表示质量的实验&#xff0…

最新视频号名字使用规范你了解了吗!

文章来源:视频号官方平台 视频号名字使用需遵循以下规范: 账号名字应当与简介的内容相符,且不得与已注册成功的账号名字重复。 账号超过180天未以视频号身份进行发表、评论等操作,将不再受到名字唯一保护,有其他用户申…

FPGA实现频率、幅度、相位可调的DDS以及DDS Compiler IP核的使用验证

文章目录 一、DDS介绍二、DDS原理2.1 频率计算2.2 相位改变2.3 波形切换 三、Matlab生成波形文件四、FPGA实现DDS4.1 Verilog代码4.2 仿真验证4.2.1 改变频率4.2.2 切换波形4.2.3 相位调节4.2.4 幅度调节 五、Xilinx DDS Compiler的使用5.1 功能框图5.1.1 相位累加器5.1.2 SIN/…

通俗讲解javascript的实例对象、原型对象和构造函数以及它们之间的关系

今天通俗讲解一下js的对象,因为要通俗,所以可能描述不甚准确。 在js中,想要创建一个对象,首先要写出构造函数(跟其它的语言不太一样哦,其它语言一般都会先写一个class 类名)。 构造函数写法如…

【PGCCC】 复合索引和部分索引,竟然能让查询速度提升 275 倍!

索引对于加速数据库查询和提高 PostgreSQL 应用程序的性能至关重要。但是,并非所有索引都以相同的方式发挥作用。复合索引和部分索引是两种常见类型,每种类型都有不同的用途和对性能的影响。本文我们将深入探讨复合索引和部分索引是什么、它们如何运作以…

关于在vue2中给el-input等输入框的placeholder加样式

::v-deep {.el-input--medium,.el-input__inner {height: 100%;background: #163670;border: 1px solid #4cc0f6;border-radius: 6px 6px 6px 6px;&::placeholder {color: #13EFFF;}} } 效果如下: .el-date-editor .el-range-input{&::placeholder {color:…

SAP MIGO M7146不支持移动原因

移动类型 Z91 查看配置:Z91 匹配的原因没有921 倒是Z92的原因里面有921 那解决方案有2种,但是要根据具体业务要求来 1、审视一下是否移动原因用错了 ?换一个移动原因 2、确实是这个移动类型 要用到这个移动原因 ,那就在上图 移…

Python编码系列—Python观察者模式:实现事件驱动架构的利器

🌟🌟 欢迎来到我的技术小筑,一个专为技术探索者打造的交流空间。在这里,我们不仅分享代码的智慧,还探讨技术的深度与广度。无论您是资深开发者还是技术新手,这里都有一片属于您的天空。让我们在知识的海洋中…