avatar

RWO.cc

读一次写一次

  • 首页
  • 搭建手册
  • 笔记
  • 短视频
  • 关于
  • 🌈200粉丝🌈
Home Python中if __name__ == "__main__" 的作用
文章

Python中if __name__ == "__main__" 的作用

Posted 2024-07-9 Updated 2024-07- 12
By RWO.
4~5 min read

Python中 if __name__ == "__main__" 是一个非常常见的结构,但它究竟是做什么的呢?今天,我们将深入解析这个结构的作用及其在实际中的应用。

基本概念

首先,让我们看看一个简单的Python脚本,其中包含 if __name__ == "__main__"。

def main():
    print("This is the main function")

if __name__ == "__main__":
    main()

在这个例子中,main() 函数只有在直接运行这个脚本时才会被调用。

__name__的值

为了理解其工作原理,我们需要知道 __name__ 的值。当Python解释器运行一个脚本时,它会设置一些特殊变量,其中 __name__ 是一个。

print(__name__)  # 输出:__main__

当脚本直接运行时,__name__ 的值是 "__main__"。当脚本被作为模块导入时,__name__ 的值是模块的名字。

作为模块导入

让我们看看将脚本作为模块导入时的情况。

# 另一个脚本中
import myscript  # 假设之前的脚本保存为myscript.py

在这种情况下,myscript 中的 __name__ 值将是 "myscript",而不是 "__main__"。因此,main() 函数不会被调用。

实际应用

这种结构在实际应用中非常有用,可以防止在导入模块时执行特定的代码。

# myscript.py
def main():
    print("This is the main function")

def helper():
    print("This is a helper function")

if __name__ == "__main__":
    main()

# 另一个脚本中
import myscript
myscript.helper()

在这个例子中,当 myscript 被导入时,只有 helper() 函数会被调用,而 main() 函数不会执行。

实战示例

这种结构也非常适合测试代码。当你想要测试一个模块时,可以在 if __name__ == "__main__" 块中添加测试代码。

# myscript.py
def add(a, b):
    return a + b

if __name__ == "__main__":
    print(add(1, 2))  # 输出:3

当直接运行 myscript.py 时,测试代码会被执行,而在导入时不会,这使得代码更干净、更模块化。

总结

总结一下,if __name__ == "__main__" 是一种常见的Python结构,主要用于控制代码在直接运行和作为模块导入时的行为。它可以帮助我们编写更模块化和可测试的代码。希望今天的内容能帮你更好地理解和应用这个技巧。

短视频
每日一点 短视频 Python
License:  CC BY 4.0
Share

Further Reading

Nov 3, 2024

什么是 python 的闭包

在 Python 中,闭包(Closure)是一种函数对象,它不仅包含了函数的代码,还包含了函数创建时的环境变量。这意味着闭包可以“记住”其外部作用域中的变量,即使在外部作用域已经结束后,闭包仍然可以访问这些变量。 函数可以访问他被创建时所处的上下文环境,这被称为闭包。 闭包的基本特征 嵌套函数:闭

Nov 2, 2024

使用argparse模块解析命令行参数

在 Python 中,argparse 模块用于解析命令行参数,使得脚本可以更灵活地接受用户输入。以下是如何使用 argparse 模块解析命令行参数的详细介绍和示例。 基本用法 示例:简单的命令行参数解析 首先,创建一个简单的脚本来解析命令行参数。我们将创建一个脚本,该脚本接受两个整数并打印它们的

Nov 1, 2024

Python中的二维码生成与解析(花里胡哨)

如何使用 qrcode 库生成各种有趣的二维码,包括彩色二维码、带 Logo 的二维码和动态 GIF 二维码。下面,我们将逐步介绍这些功能。 Qrcode 库简介 qrcode 库是一个强大的 Python 工具,用于生成二维码。除了基本的二维码,它还支持自定义功能,如颜色变化、样式设计和动画效果。

OLDER

Python中的进度条实现(tqdm)

NEWER

Python中的数字美化技巧

Recently Updated

  • 什么是 python 的闭包
  • 使用argparse模块解析命令行参数
  • Python中的二维码生成与解析(花里胡哨)
  • Python中的二维码生成与解析(基础使用)
  • 使用platform模块获取系统信息

Trending Tags

学习 Git 工具 SQL docker-compose 每日一点 快捷键 Flink fastapi Windows

Contents

©2025 RWO.cc. Some rights reserved.

Using the Halo theme Chirpy