if __name__=‘__main__‘的用处

在 Python 中,if __name__ == '__main__':是一个常见的代码模式,用于控制模块的执行行为。它的核心作用是区分模块是被直接运行还是被导入到其他文件中

作用详解:

  1. 当文件被直接运行时

    __name__会被自动设置为 '__main__',此时 if块内的代码会执行。

  2. 当文件被导入时

    __name__会变成模块的名称(即文件名),此时 if块内的代码不会执行


实际用途:

1. 防止导入时执行测试代码
复制代码
# mymodule.py
def useful_function():
    print("This is useful!")

# 测试代码(只在直接运行时执行)
if __name__ == '__main__':
    print("Running tests...")
    useful_function()
  • 直接运行 python mymodule.py→ 输出测试结果

  • 其他文件导入 import mymodule→ 不会触发测试代码

2. 创建可复用模块
复制代码
# utils.py
def helper():
    print("Helper function")

if __name__ == '__main__':
    # 直接运行时提供命令行操作
    print("Running in CLI mode")
    helper()
  • 作为模块导入时:只提供 helper()函数

  • 直接运行时:变成命令行工具

3. 分离代码逻辑
复制代码
# main.py
import data_processor

data = load_data()
processed = data_processor.process(data)  # 导入时不触发执行

if __name__ == '__main__':
    save_results(processed)  # 只有直接运行时保存结果

技术原理:

  • Python 解释器在运行文件时,会创建一个特殊变量 __name__

  • 直接运行时:__name__ = "__main__"

  • 被导入时:__name__ = "模块名"(如 "mymodule"

最佳实践:

✅ 将脚本的入口代码放在 if __name__ == '__main__':

✅ 模块的核心功能定义在外部函数中

❌ 避免在模块顶层写直接执行的代码(除非明确需要)

📌 ​关键总结​:这个结构让 Python 文件既能作为独立程序运行,又能作为模块被安全导入,是 Python 模块化编程的基础设计模式。

相关推荐
Y幽谷客6 小时前
Python加载本地大模型(Qwen3.5 8B)
python·大模型
伞伞悦读7 小时前
【第36期】Python 目录与路径详解:pathlib、文件遍历、创建、复制、移动和删除风险
开发语言·python
线上放牧人7 小时前
Windows删除图标缓存
windows·python·pyqt
qq_5470261797 小时前
Python 变量和简单数据类型
python
智搜广告9 小时前
智搜广告:科技行业AI回答优化公司如何破局
大数据·python·elasticsearch·geo
IpdataCloud9 小时前
AI智能体调用工具怎么核验来源IP?归属地、网络类型与代理风险识别(含Python代码)
数据库·python·tcp/ip
2601_966949659 小时前
只拿到股票代码还不够:量化程序到底还需要哪些标的信息?——从数据建模开始理解股票元数据
开发语言·python·数据分析·pandas·量化交易·股票数据·quantdash
蒸鱼Yuzheng10 小时前
Python 游戏测试开发怎么准备:日志解析、接口校验、并发与可维护性
自动化测试·python·测试开发·面试题·游戏测试
Ivanqhz10 小时前
BM1688 双核架构
python·深度学习·神经网络·cnn·mlir
Java后端的Ai之路10 小时前
Python进阶探索17 - Python中的深拷贝与浅拷贝
人工智能·python·ai·浅拷贝·深拷贝