if__name__==__main__:错误_DAY4-step1 Python主函数:正确理解__main__

博客主要介绍了Python主函数相关知识。主函数是程序起点,仅作为程序运行时执行,作为模块导入则不运行。通过代码示例说明了声明调用函数'if __name__ == \__main__\'的重要性,还阐述了直接运行和导入的区别,最后提到Python 3中不使用该语句也有类似效果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

什么是Python主函数?

主函数是任何程序的起点。 仅当主函数作为Python程序运行时才执行。 如果将其作为模块导入,它将不会运行main函数。

要理解这一点,请考虑以下代码

def main():     print ("hello world!")print ("Guru99")
e5997e5148a44854503cf7979c3799d3.png

在这里,我们有两个打印,一个是在主函数定义的,打印“ Hello World”,另一张是独立的,打印“ Guru99”。 当您运行时:

  • 仅打印“ Guru99”
  • 而不会打印“ Hello World”。

这是因为我们没有声明调用函数"if__name__== "__main__"

重要的是,在定义了main函数之后,您可以通过"if__name__== "__main__"调用代码,然后运行代码,只有这样,您才能获得输出“ hello world!”。 在编程控制台中。 考虑以下代码

def main():    print("hello world!")if __name__ == "__main__":    main()print("Guru99")

在这种情况下,将打印Guru99。

b6b3f22978364e9c55c4608720a63ad7.png
  • 当Python解释器读取源文件时,它将执行其中找到的所有代码。
  • 当Python将“源文件”作为主程序运行时,它将特殊变量(__name__)设置为(“ __main__”)。
  • 当您执行main函数时,它将读取“ if”语句并检查__name__是否等于__main__。
  • 在Python中,“ if__name __ ==” __main__“允许您将Python文件作为可import模块或独立程序运行。如果是import的时候,则__name__是不会等于'__main__'的,所以import时,不会执行main()

直接运行和导入的区别

要了解__name__变量的重要性,请考虑以下代码:

def main():    print("hello world!")if __name__ == "__main__":    main()print("Guru99")print("Value in built variable name is:  ",__name__)

直接运行:

  • __name __ = __ main__
  • if __name__ == "__main__",会得到True,则将执行_main_中的脚本

结果如下图

1335435898cb026c6f3893f255f825bd.png

导入为模块来使用

如果将上面的代码保存为MainFunction.py,并在别的程序中作为模块导入

import MainFunctionprint("done")
  • __name __ =模块的文件名
  • if __name__ == "__main__",会得到false,不会执行__main__中的脚本

执行代码后,它将判断if __name__ == "__main__",但是此时__name__的值等于模块的文件名,所以导致main()不会执行。

顺便说一下

在Python 3中,您不需要使用if __name__== "__main__"。 以下代码也是同样的效果(直接执行会运行main,导入不会运行main)

def main():  print("Hello World!")  main()print("Guru99")
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值