Python 中的 name=main 有什么意义

260 篇文章 0 订阅
196 篇文章 0 订阅

在 Python 中,if __name__ == '__main__': 是一个常见的代码结构,用于判断当前模块是否是主程序入口。这个结构的主要意义在于:

区分模块作为脚本运行还是被导入:

当一个 Python 文件(模块)被直接运行时,__name__ 变量会被设置为 __main__。

当一个 Python 文件被其他文件导入时,__name__ 变量会被设置为该模块的名称。

防止代码在导入时执行:

通过使用 if __name__ == '__main__':,可以确保某些代码块只有在文件作为主程序运行时才会被执行,而在被其他文件导入时不执行。

示例

假设我们有一个名为 my_module.py 的文件,内容如下:

# my_module.py
def main():
    print("This is the main function.")
def helper_function():
    print("This is a helper function.")
if __name__ == '__main__':
    main()

直接运行 my_module.py​​​​​​​

python my_module.py
输出将会是:
This is the main function.

导入 my_module.py​​​​​​​

如果你在另一个文件中导入 my_module.py,例如 another_script.py:
# another_script.py
import my_module
my_module.helper_function()
当你运行 another_script.py 时,输出将会是:
This is a helper function.

在这种情况下,my_module.main() 不会被调用,因为 if __name__ == '__main__': 条件不成立。

用途

测试代码:

你可以在模块中编写一些测试代码,并将其放在 if __name__ == '__main__': 块中。这样,当模块被直接运行时,测试代码会执行;而当模块被导入到其他文件中时,测试代码不会执行。

主程序逻辑:

对于应用程序,通常会在 if __name__ == '__main__': 块中放置主程序逻辑,以确保这些逻辑只在直接运行时执行。

避免副作用:

避免在导入模块时执行不必要的操作,比如初始化数据库连接、创建日志记录器等。

示例代码

以下是一个更具体的示例,展示了如何使用 if __name__ == '__main__': 来组织代码:

# my_module.py
def main():
    print("This is the main function.")
    print("Running as a script.")
def helper_function():
    print("This is a helper function.")
def test_helper_function():
    print("Testing helper function...")
    helper_function()
if __name__ == '__main__':
    # 这些代码只有在直接运行 my_module.py 时才会执行
    main()
    test_helper_function()
else:
    # 这些代码在模块被导入时执行
    print(f"Module {__name__} has been imported.")

直接运行 my_module.py​​​​​​​

python my_module.py
输出将会是:
This is the main function.
Running as a script.
Testing helper function...
This is a helper function.

导入 my_module.py​​​​​​​

# another_script.py
import my_module
my_module.helper_function()
运行 another_script.py 时,输出将会是:
Module my_module has been imported.
This is a helper function.

通过这种方式,你可以更好地控制代码的执行行为,使模块既可以作为独立的脚本运行,也可以作为库被其他脚本导入和使用。

最后: 下方这份完整的软件测试视频教程已经整理上传完成,需要的朋友们可以自行领取 【保证100%免费】

在这里插入图片描述

软件测试面试文档

我们学习必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有字节大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值