Python 中的 if __name__ == '__main__': 详解

在 Python 脚本中,你经常会看到 if __name__ == '__main__': 这行代码。 这篇文章将解释它的作用以及如何使用它。

什么是 __name__?

在 Python 中,每个模块都有一个内置的变量 __name__

  • 当你直接运行一个模块时,该模块的 __name__ 被设置为 '__main__'
  • 当你将一个模块作为模块导入时,该模块的 __name__ 被设置为该模块的文件名(不带 .py 扩展名)。

if __name__ == '__main__': 的作用

这段代码的作用是创建一个代码块,该代码块仅在直接运行脚本时执行,而在将脚本作为模块导入时不执行。

代码示例

def class_process(dir_path, dst_dir_path):
    # 在此处添加你的代码逻辑
    # ...


if __name__ == '__main__':
    print('HELLO')
    import sys
    import os
    dir_path = sys.argv[1]
    dst_dir_path = sys.argv[2]

    count = 0
    for class_name in os.listdir(dir_path):
        print(count)
        count = count + 1
        class_process(dir_path, dst_dir_path)

在这个例子中:

  1. if __name__ == '__main__': 确保只有在直接运行脚本时才会执行下面的代码。
  2. print('HELLO') 会在脚本开始执行时打印 'HELLO'。
  3. dir_path = sys.argv[1]dst_dir_path = sys.argv[2] 从命令行参数中获取输入和输出目录的路径。
  4. 循环遍历输入目录中的每个子目录,并对每个子目录执行 class_process 函数。

总结

if __name__ == '__main__': 语句是 Python 中的一个有用技巧,可以区分代码是直接运行还是作为模块导入,从而控制代码的执行流程。

Python 中的 if __name__ == '__main__':  解释及用法

原文地址: https://www.cveoy.top/t/topic/wrV 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录