亿迅智能制造网
工业4.0先进制造技术信息网站!
首页 | 制造技术 | 制造设备 | 工业物联网 | 工业材料 | 设备保养维修 | 工业编程 |
home  MfgRobots >> 亿迅智能制造网 >  >> Industrial programming >> Python

Python main() 函数详解:入口点机制、__name__ 守卫与模块复用最佳实践

什么是 Python 主函数?

主函数标记程序入口点。脚本直接执行时,解释器顺序运行代码。def main() 内代码仅在脚本作为主模块运行时执行,被导入时不执行。

通过清晰示例演示。

示例 1:定义 main()

def main():
    print("Hello World!")
    print("Guru99")

直接运行此文件仅打印 Guru99。Hello World! 留在 main() 内未被调用。

要在脚本作为主程序运行时执行 main(),必须加守卫:

if __name__ == "__main__":
    main()

现在脚本行为符合预期。

示例 2:正确守卫

def main():
    print("Hello World!")

if __name__ == "__main__":
    main()
print("Guru99")

运行文件控制台显示:
Hello World!
Guru99

原理:解释器直接执行文件时将特殊变量 __name__ 设为 "__main__"。守卫检查该条件再调用 main()。

__name__ 与模块的角色

理解 __name__ 对编写可复用代码至关重要。

def main():
    print("hello world!")

if __name__ == "__main__":
    main()
print("Guru99")
print("内置变量 __name__ 值:", __name__)

直接运行文件打印两条消息且 __name__ 为 "__main__"。若作为模块导入:

import mainfunction
print("done")

仅见 done 且 __name__ 为模块名,main() 不自动执行。

简言之:

  • 直接运行: __name__ == "__main__" → main() 执行。
  • 作为模块导入: __name__ != "__main__" → main() 跳过。

Python 3 简单脚本不强制要求 if __name__ == "__main__":,但作为最佳实践推荐使用,尤其是文件可能被复用时。Python 2 语法相同但 print 语句不同:

def main():
    print "Hello World!"
if __name__ == "__main__":
    main()
print "Guru99"

Python 3 也可写成:

def main():
    print("Hello World!")
main()
print("Guru99")

注意:def main(): 后保持正确缩进以避免错误。

Python

  1. Python Lambda匿名函数实战指南
  2. Python 生成器:高效迭代与进阶用例
  3. Python 闭包详解:嵌套函数如何捕获变量
  4. 精通 Python 装饰器:专家技巧增强函数
  5. Python strip() 方法完全指南:去除首尾空白与自定义字符实战
  6. Python len() 函数实战指南:测量字符串、列表、元组、字典等对象长度
  7. Python 字符串 find() 方法完全指南:语法、参数、替代方案与计数技巧
  8. 精通 Python Lambda 函数:实用示例与最佳实践
  9. Python round() 函数详解与实战示例
  10. 精通 Python map() 函数:语法、示例与最佳实践
  11. 精通 Python yield:生成器 vs return 实战指南
  12. Python collections.Counter:高效计数、更新与算术运算