Python基础内容:怎样快速理解if __name__ == 'main'语句

简介: name 是当前模块名,当模块被直接运行时模块名为 main 。这句话的意思就是,当模块被直接运行时,以下代码块将被运行,当模块是被导入时,代码块不被运行。

name 是当前模块名,当模块被直接运行时模块名为 main 。这句话的意思就是,当模块被直接运行时,以下代码块将被运行,当模块是被导入时,代码块不被运行。

这里写图片描述

相信好多初学者在学习python的过程中,经常会遇到if name == ‘main’语句,可能你知道它的作用,也可能很模糊,今天就给大家分享下我的理解。

我们先新建一个text的py文件,并写入以下内容并运行

这里写图片描述

然后呢,在同一个文件夹中在新建一个py文件text1,写入一行代码:import text 然后运行看看结果

这里写图片描述

与之前test.py代码运行结果比较,只有输出学习Python,也就是if name==”main“: 之前的语句被执行,之后的没有被执行。

为什么会这样呢?别急,我们稍微处理下代码就可以看明白了:
在 if name==”main“之前加入一行代码:print(name),即打印出name,然后我们在重新分别执行2个代码看看

这里写图片描述

这就很清楚了,在text中name变量的值为main,而在text1中,name的值为text,明显不满足if语句,因此,后面的代码无法执行!

仔细想想,它的原理也就是:

每个python模块(文件)都包含内置的变量name,当该模块被执行的时候,name就等于文件名。而import到其他模块(文件)中,则name等于当前的模块名,而main等于当前文件名,所以直接执行模块的时候if name==”main“为真,可以执行;import到其他模块(文件)中,if name==”main“为假,那当然就不执行对应的代码了。

简单说就是:name是当前的模块名字,在当前文件时可以被执行,而模块被导入时,代码不被运行!

这里写图片描述

喜欢就关注下呗( ̄ε  ̄)

相关文章
|
7月前
|
开发框架 Java .NET
Python中main函数:代码结构的基石
在Python中,`main`函数是程序结构化和模块化的重要组成部分。它实现了脚本执行与模块导入的分离,避免全局作用域污染并提升代码复用性。其核心作用包括:标准化程序入口、保障模块复用及支持测试驱动开发(TDD)。根据项目复杂度,`main`函数有基础版、函数封装版、参数解析版和类封装版四种典型写法。 与其他语言相比,Python的`main`机制更灵活,支持同一文件作为脚本运行或模块导入。进阶技巧涵盖多文件项目管理、命令行参数处理、环境变量配置及日志集成等。此外,还需注意常见错误如全局变量污染和循环导入,并通过延迟加载、多进程支持和类型提示优化性能。
643 0
|
Python
【Python】 已解决:NameError: name ‘python‘ is not defined
【Python】 已解决:NameError: name ‘python‘ is not defined
2370 8
|
数据采集 机器学习/深度学习 Python
【Python】已完美解决:ImportError: cannot import name ‘Imputer‘ from ‘sklearn.preprocessing
【Python】已完美解决:ImportError: cannot import name ‘Imputer‘ from ‘sklearn.preprocessing
1116 3
|
9月前
|
Java C# C++
如何简单地理解Python中的if __name__ == '__main__'
本文介绍了Python中`__name__ == '__main__'`的作用和原理,解释了它如何作为程序入口控制代码执行。当.py文件直接运行时,`if __name__ == '__main__'`下的代码块会被执行;而当文件作为模块被导入时,该代码块不会执行。此外,文章还探讨了`__name__`变量在包结构中的作用,以及`__main__.py`文件与`python -m`命令的关系,详细说明了不同运行方式对模块路径的影响。
739 18
【Python操作基础】——if语句用法
【Python操作基础】——if语句用法
5-5|python开启多线程入口必须在main,从python线程(而不是main线程)启动pyQt线程有什么坏处?...
5-5|python开启多线程入口必须在main,从python线程(而不是main线程)启动pyQt线程有什么坏处?...
Python控制流:条件语句(if, elif, else)
本文详细介绍了Python条件语句的使用方法,包括if、elif和else,以及条件表达式和多条件判断。通过一个综合详细的例子,我们展示了条件语句在实际编程中的应用。希望本文对您理解和应用Python条件语句有所帮助。
|
Python
python中模块对象__name__
【6月更文挑战第12天】
250 7
|
API 开发工具 Python
【Azure Developer】Python 获取 Azure 中订阅(subscription)信息,包含ID, Name等
【Azure Developer】Python 获取 Azure 中订阅(subscription)信息,包含ID, Name等
190 0
|
Python
Python使用飞桨报错NameError: name 'predict_system' is not defined问题处理
【5月更文挑战第12天】Python使用飞桨报错NameError: name 'predict_system' is not defined问题处理
1094 1

推荐镜像

更多