python代码里面的if __name__ == ‘main‘什么作用?

汽车底盘技术解析:从悬架调校到智能化,如何评价国产车底盘实力 汽车底盘作为决定车辆驾驶质感、安全性和耐久性的核心系统,其技术内涵远不止于悬架结构。从行驶系、转向系到制动系的协同工作,底盘调校是一门融合机械原理与工程实践的艺术。在电动化与智能化浪潮下,底盘技术正经历从被动适应到主动响应的变革,CDC可变阻尼减震器和空气悬架等技术的应用,让底盘具备了通过OTA升级实现性能优化的可能。国产汽车品牌如奇瑞、吉利等,通过平台化架构研发与调校经验积累,正推动底盘技术从“能用”向“好用”乃至“塑造独特驾驶风格”迈进。理解底盘技术,需超越简单的结构对比,关注其在实际路况中的滤震性、支 阅读详情

  刚学习python的时候,经常会参考一些大佬的代码,然后会发现,好多的代码里面都会有这样一段话:

if __name__== '__main__':

注:下文main指代上一行代码
  刚开始也没有在意这一行代码,只知道在pycharm这个IED里面,敲上main回车,就会出现这一行代码。对其的理解也仅限于把它当成文件里面的一个主函数来用。随着后来代码越写越多,然后对这行代码进行了深入的了解,这里把自己所理解的分享给大家。

  首先先说一下,一个.py文件主要就两种用法:一、此文件就属于脚本文件,直接执行就可以了。二、被当成模块,由其他脚本文件调用使用。本文要说的main就与.py文件的两种使用方式有关。
简单来说,当某一.py文件作为脚本文件时候,才会执行main下面的内容,反之,如果说.py文件是被调用的模块,那么main下面的内容将不会被执行。
这么说不理解的话,上例子。
先建两个.py文件。
test1.py里面内容为:

print("我是test1.py里面的代码!!!")


def model():
    print("我是model函数里面的代码!!!")


if __name__ == '__main__':
    print("我是main里面的代码!!!")
    model()

test2.py里面内容为:

from test1 import model as md


md()

先执行test1.py,输出结果为
图1

执行test2.py,输出结果为

图2
很明显在执行test1.py时,代码在脚本全局从上到下执行,首先输出:

我是test1.py里面的代码!!!

然后执行main输出:

我是main里面的代码!!!

然后执行model函数,输出:

我是model函数里面的代码!!!

在执行test2.py时,首先执行from test1 import model as md,此处调用了test1.py文件,所以首先对test1.py进行一次编译,输出:

我是test1.py里面的代码!!!

然后执行test1.py里面的model函数,输出:

我是model函数里面的代码!!!

可以看出,test1.py里面main下的代码并没有被执行。

那么为什么会这么运行呢?

  仔细研究一下代码,if不用说了就是判断,那么这段话重点就在于__name__,和 ’ _ main _ '是什么。
每个python模块(.py文件)都包含内置的变量__name__,当运行模块被执行的时候,__name__等于文件名(包含了后缀.py);如果import到其他模块中,则__name__等于模块名称(不包含后缀.py)。而 ’ _ main _ '等于当前执行文件的名称(包含了后缀.py)。进而当模块被直接执行时, _ name _ == ’ _ main _ '结果为真。
所以只有文件属于脚本文件的时候,才会执行if _ name _ == ’ _ main _ ':下的代码。

antiSMASH安装与使用 antiSMASH本地安装 简要: antiSMASH的本地安装需要安装很多的依赖包,本文章使用conda辅助安装 参考: 官方:https://docs.antismash.secondarymetabolites.org/install/ 文章:http://blog.sciencenet.cn/blog-3416913-1240614.html 依赖包下载 conda install -y diamond=0.8.36 conda install -y fasttree=2.1.9 conda ins 阅读详情

相关推荐

CubeMX配置ADC+DMA避坑实战:如何避免采样过快导致的系统崩溃

本文针对STM32开发中常见的ADC采样过快导致程序卡死问题,提供了基于CubeMX的实战避坑指南。通过分析ADC与DMA协作机制,详解时钟配置、采样时间、DMA缓冲区长度及中断设置等关键步骤,帮助开发者从源头规避系统崩溃风险,实现稳定可靠的数据采集。

weixin_28273593的博客 319

Python里“__main__”是干啥的?

打开PyCharm或者别人的代码,经常会看到一行:所以这行代码是干啥用的?好像不用这行也能运行?虽然这是个很基础的问题,但因此它常常被忽略,就比如我自己以前也是着急上手py,直到今天才认识它。__ name__ == '__ main__'是Python的main函数入口,但并不是有这行代码才能运行,这里只是可以判断代码是否被直接执行还是被调用执行。气氛都烘托到这里了,动手写几行代码验证一下!新建...

a18065597272的博客 1320

手把手教你用Python+Playwright实现抖音/B站/视频号三平台自动上传(附完整配置流程)

本文详细介绍了如何使用Python和Playwright构建一个多平台视频自动化上传系统,涵盖抖音、B站和视频号三大平台。文章从环境搭建、身份验证持久化、平台特异性上传引擎设计到任务调度与错误处理,提供了完整的配置流程和实战代码,帮助开发者实现高效、稳定的批量上传功能。

weixin_29294975的博客 1127

PyCharm使用初步

PyCharm使用初步 目录PyCharm使用初步前言如何建立一个新工程如何运行调试程序如何加载第三方包如何使用国内镜像源如何使用自己的Python脚本如何用PyCharm加载一个已有工程如何打开一个已有工程 前言 PyCharm是一家位于捷克的软件公司JetBrains专门针对Python开发的集成开发环境 (IDE),其可以避免繁琐的环境配置,又内置友好的版本管理工具,所以深受广大工程师的喜爱,社区版(免费)可在(https://www.jetbrains.com/pycharm/) 获取。 如何建立一

chenleiHub的博客 7638

EFR32BG22 Thunderboard开发板 使用SPI 读取加速度计

Simplicity Studio v5 创建Silicon Labs蓝牙SoC EFR32BG22 Thunderboard模块的加速度计工程,模块上有一个ICM-20648 6轴运动跟踪设备,集成3轴加速度计和3轴陀螺仪功能,使用SPI接口跟EFR32BG22芯片连接。 我尽量以图片的形式展示(少打字): 将EFR32BG22的Thunderboard模块通过USB线插入到电脑,打开Simplicity Studio v5软件。 下面看重点: 点击搜索到的IO Stream: USART,点击Ins

qq_25727979的博客 1490

每日算法讲解(十):使用BP神经网络进行回归任务

BP神经网络是由输入层、隐藏层和输出层组成的多层前馈神经网络,通过反向传播算法(Backpropagation)来调整网络权重和偏置,以最小化预测误差。前向传播:将输入数据通过网络,计算每层的激活值和输出。计算误差:根据预测值和真实值之间的差异计算损失函数值。反向传播:从输出层开始,逐层向后计算梯度,并更新每层的权重和偏置。重复迭代:通过多次迭代,逐步减小预测误差,优化模型参数。接下来,我们定义一个包含一个输入层、两个隐藏层和一个输出层的BP神经网络模型。# 定义模型# 编译模型。

rhtee的博客 1715

Python入门:使用PyCharm调试Python程序

Python入门:使用PyCharm调试Python程序 面向Python初学者 PyCharm集成运行环境      在了解Python编程之前,我们需要先弄明白如何编写运行代码。所以非常有必要先讲解一下Python的集成开发环境,也就是IDE(Integrated Development Environment)。PyCharm是一款优秀的开源Python语言集成开发工具。PyCharm...

gelduoe的博客 2万+

Arcgis栅格裁剪批处理工具

Arcgis栅格裁剪批处理工具

yilvyangguang520的博客 2162

PyCharm的基础使用

使用pycharm写第一个python程序;pycharm常用设置;修改主题;设置字体;配置python解释器;文件编码;显示行数和方法线;

m0_60406865的博客 1009

LVGL 丝滑菜单3(Silk Menu)

h。

摸鱼专家 74

华为OD机试 - 不含101的数(Python/JS/C/C++ 双机位C卷 100分)

本专栏收录于《华为OD机试真题(Python/JS/C/C++)》。刷的越多,抽中的概率越大,私信哪吒,备注华为OD,加入华为OD刷题交流群,每一题都有详细的答题思路、详细的代码注释、3个测试用例、为什么这道题采用XX算法、XX算法的适用场景,发现新题目,随时更新。小明在学习二进制时,发现了一类不含101的数,也就是:现在给定一个正整数区间,请问这个区间内包含了多少个不含101的数?输入的唯一一行包含两个正整数。输出的唯一一行包含一个整数,表示在区间内一共有几个不含101的数。8 1668 → “1000”

学Java,找哪吒 1242

python代码if __name__ == ‘__main__‘ 的含义及作用

Python模块中的if __name__ == '__main__'机制解析 摘要: 本文详细剖析了Python中if __name__ == '__main__'的核心原理与应用场景。该机制通过内置变量__name__实现模块的双重功能:当直接执行时__name__为'main',触发主程序逻辑;被导入时则保持模块名,避免执行测试代码。这种设计实现了模块的"脚本-库"双重身份,既能独立运行又可被复用。典型应用包括单元测试隔离、命令行工具开发和防止导入时的副作用。通过实例分析展示了如何

qq_39980997的博客 976

别再瞎改网络结构了!解决YOLO小目标检测痛点,我用这招把mAP提了15%

本文基于我7年工业PCB缺陷检测、无人机航拍、安防监控项目的一线落地经验,针对YOLO小目标检测最痛的「漏检率高、特征丢失、精度难提升」三大核心问题,拆解出。本文全程配套小目标特征丢失原理图、分块训练流程图、切图前后效果对比图、mAP提升柱状图、多方案性能对比表等可视化内容,从YOLO天生不擅长小目标的底层根源、方案核心原理、可直接复制的代码实现,到工业场景实测验证、新手必踩的10个坑位避坑指南,全链路讲透。

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 381

if __name__== "__main__" 的意思(作用)python代码复用

if name== “main” 的意思(作用)python代码复用

afunyusong的专栏 331

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

Python代码中的if __name__ == ‘__main__‘的作用是什么?

要搞清楚这个问题,要知道以py作为后缀的Python代码文件,有两种使用方式,第一种方式是直接运行,另一种方式是作为模块被别的py文件导入。 当采用第一种方式直接运行自身时,name__的值为__main; 当采用第二种方式被别的模块导入时,其__name__的值为其文件名(通常也称为模块名); 举例实测如下: 用PyCharm新建一个Python工程后,新建两个py文件,文件名分别为AAA.py和BBB.py 然后在AAA.py中写上如下代码: print('当前AAA.py中__name__的值为:',

昊虹AI笔记 3556

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

Python代码中if __name__ == ‘__main__‘的作用是什么?

这篇文章深入浅出地讲解了Python中if __name__ == '__main__'的作用原理和使用场景。文章首先解释了__name__这个特殊变量的两种取值情况:直接运行时等于'__main__',被导入时等于模块名。然后通过具体代码示例,展示了该语句如何控制代码块仅在直接运行时执行。最后总结了三个实际开发中的主要用途:避免测试代码意外执行、区分模块功能与脚本运行、编写可独立运行又能被导入的工具文件。全文用通俗易懂的语言和示例,帮助读者理解这个Python编程中的经典语句。

DeniuHe的博客 306

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

if函数python作用_if __name__== "__main__" 的意思(作用)python代码复用

模块是对象,并且所有的模块都有一个内置属性 __name__。一个模块的 __name__ 的值取决于您如何应用模块。如果 import 一个模块,那么模块__name__ 的值通常为模块文件名,不带路径或者文件扩展名。但是您也可以像一个标准的程序样直接运行模块,在这 种情况下, __name__ 的值将是一个特别缺省"__main__"。/////////////////////////////...

weixin_39705931的博客 694

python代码中经常看到,if __name__ == “__main__“,作用是啥

EditThisCookie 源码:https://github.com/ETCExtensions/Edit-This-Cookie。手动复制 cookies 显然是麻烦的,所以我采用了 EditThisCookie 这个插件来导出对应的 cookies。但很显然的是,直接下载往往只能下载到低画质的,而且也无法下载需要会员的视频,所以需要登录后的 cookie。两种格式的 cookies,所以我们需要找到一个符合格式的 cookies。,这样一来,我们就能导出符合要求的。和 Netscape。

二进制君 789

为什么我们需要if __name__ == __main__:

if __name__ == __main__没有意义?恰恰相反!

K_KK_KK_KK的博客 1406

if _ name ==‘ main ‘:的含义,why?

是作为模块导入的,而不是直接运行的。

2201_75906361的博客 378

Python中 if __name__ == ‘__main__‘ 的含义,why?

_name__每个 Python 文件(模块)都有一个内置变量__name__。该文件时,__name__会被自动赋值为"__main__"。到其他文件时,__name__会变为模块本身的名称(例如文件名会检查当前模块是否作为主程序运行。如果条件成立(直接运行),则执行下方的代码块;若被导入,则跳过这部分代码。

qq_75060067的博客 336

if __name__ == __main___Python必备知识之“if __name__ == '__main__':”

在学习Python的过程中经常会看到“if __name__ == '__main__':”这行代码,那么这行代码的作用究竟是什么呢?“if __name__ == '__main__':”这行代码的主要作用是调试某个模块的正确性,将要调试的代码以缩进的形式写在“if __name__ == '__main__':”下面,这样当其他模块使用这个模块里的变量、方法或类的时候,就不会去执行“...

weixin_34626306的博客 153

魔力Python--if __name__ == '__main__' 的理解

if __name__ == '__main__' 的理解   __name__ 是当前模块名,当模块被直接运行时模块名为 __main__ 。   这句话的意思就是,当模块被直接运行时,以下代码块将被运行,当模块是被导入时,代码块不被运行。 #practice.py import cc print('引用cc') cc.cc() print('程序结束!') 其...

weixin_30763455的博客 89

if __name__ == __main___Python必备知识之“if __name__ == '__main__':”

在学习Python的过程中经常会看到“if __name__ == '__main__':”这行代码,那么这行代码的作用究竟是什么呢?“if __name__ == '__main__':”这行代码的主要作用是调试某个模块的正确性,将要调试的代码以缩进的形式写在“if __name__ == '__main__':”下面,这样当其他模块使用这个模块里的变量、方法或类的时候,就不会去执行“if __...

weixin_42126677的博客 178

if __name__ == __main___“if __name__ == '__main__':”

在学习Python的过程中经常会看到“if __name__ == '__main__':”这行代码,那么这行代码的作用究竟是什么呢?“if __name__ == '__main__':”这行代码的主要作用是调试某个模块的正确性,将要调试的代码以缩进的形式写在“if __name__ == '__main__':”下面,这样当其他模块使用这个模块里的变量、方法或类的时候,就不会去执行“if __...

weixin_30783947的博客 129

Python理解if __name__ == ‘__main__‘:

if __name__ == '__main__'判断当前模块是否是正在被直接运行的主程序,如果是,if判断句中代码就会被执行,如果不是,if判断句中的代码不会被执行。作为模块导入其他模块中时:import module_a, , Python的解释器会将该模块的__name__属性值设置为其模块名(module_a)。作为主程序执行时:python module_a.py , Python的解释器会将该模块的__name__属性值设置为'__main__'。在模块b中__name__为:__main__

Sunny 311
上一篇: 手把手教你win10下GPU(cuda+cudnn)+Anaconda+Tensorflow/pytorch深度学习环境配置
依雪观天澜丶
博客等级 码龄8年 2粉丝 3原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值