您的位置 首页 java

DAY4-step1 Python主函数:正确理解__main__

什么是 Python 主函数?

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

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

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

在这里,我们有两个打印,一个是在主函数定义的,打印“ 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。

  • 当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_中的脚本

结果如下图

导入为模块来使用

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

 import MainFunction

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

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

顺便说一下

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

文章来源:智云一二三科技

文章标题:DAY4-step1 Python主函数:正确理解__main__

文章地址:https://www.zhihuclub.com/193451.shtml

关于作者: 智云科技

热门文章

网站地图