python(一):Python中的主函数

Python中的主函数

  • 1、概述
  • 2、主函数
    • 2.1、Python文件作为脚本运行
    • 2.2、将Python文件作为模块运行
    • 3、总结

      1、概述

      大家好,我是欧阳方超。今天说一下Python中主函数的概念。

      在Python中,没有像其他编程语言那样明确的主函数的概念,但是依然会有一个程序的入口函数,Python不同于其他语言中(如C/C++)的地方在于:

      Python没有严格要求主函数;

      Python的主函数就是被最先执行的函数(所以主函数可以是自定义的)。

      2、主函数

      Python中的程序从最上面的代码开始执行,依次执行每一行代码,直到程序结束或遇到break、return或raise等语句。因此,Python程序中的任何函数都可以被视为主函数,只要在程序中调用它即可。

      虽然Python没有明确的主函数,但是通常在程序的结尾部分编写一个如下的语句块:

      if __name__ == '__main__':
      

      用于定义程序的入口点。这个语句块会在程序作为脚本直接运行时(不是import作为模块)执行,但是在其他模块中导入时不会执行。在这个语句块中,可以调用其他函数或执行其他操作,作为程序的主要逻辑。

      2.1、Python文件作为脚本运行

      下面是一个简单的例子,展示if __name__ == '__main__':作用以及如何在利用它在Python中定义一个主函数。

      假设a.py文件中有如下代码:

      def add_numbers(a, b):
          """计算两个数字的和"""
          result = a + b
          return result
      if __name__ == '__main__':
          result = add_numbers(3, 5)
          print(result)
      

      在上述代码中,我们定义了一个add_numbers函数,用于计算两个数字的和。然后在if name == ‘main’:语句块中调用了这个函数,并将结果打印到屏幕上。当程序作为脚本直接运行时,即命令行中执行python a.py,这个语句块就会被执行,从而调用add_number()函数,进而计算并打印出3和5的和。

      为什么会这样呢,首先__name__变量是一个特殊的内置Python变量,当直接执行Python脚本时该变量会被赋值为__main__,所以才会执行函数调用;但是当一个Python脚本被导入其他模块时,该脚本的__name__变量的值会发生变量,具体往下看。

      2.2、将Python文件作为模块运行

      假如在同一目录有两个Python脚本:b.py和c.py,内容分别如下:

      def test():
          str = "__main__"
          print(str)
          print(__name__)
      if __name__ == '__main__':
          test()
      
      import a
      a.test()
      

      当执行c.py时,会调用a模块的test()方法,此时该方法中的print(__name__)语句执行结果为a,这是因为,在将Python文件作为模块运行的情况下,模块本身的名称已分配给__name__变量。

      3、总结

      总之,在Python中没有明确的主函数的概念,但是可以使用if __name__ == '__main__':语句块来定义程序的入口点,并在其中调用其他函数或执行其他操作。这是在Python中显式定义main()函数的标准方法。 这也是Python中__name__变量的最流行的用例之一。

      我是欧阳方超,把事情做好了自然就有兴趣了,如果你喜欢我的文章,欢迎点赞、转发、评论加关注。我们下次见。