Python中的【if __name__=='__main__':】

1、Java和C#的程序入口

Java的程序入口Main函数


 
 
  1. public static void Main(string[] args)
  2. {
  3. //方法体
  4. }

C#的程序入口Main函数


 
 
  1. public static void Main(string[] args)
  2. {
  3. //方法体
  4. }

2、Python的程序入口

(1)Python不需要Main函数也能执行

Python不同于以上编程语言,Python是解释性语言,不需要先编译成二进制语言,再执行。Python是动态,是从上至下逐行解释运行。

如下:demo_list.py


 
 
  1. b=[]
  2. b.append( "test")
  3. b.append( "apple")
  4. b.append( "banana")
  5. for a in b:
  6. print(a)
  7. def fact(n):
  8. if n == 1:
  9. return n
  10. else:
  11. return n * fact(n -1)
  12. print( "阶乘:", fact( 3))
  13. print( '__name__是模块名字(文件名),值为:'+__name__)

在PyCharm中,右键直接运行以上代码文件,执行结果:

(2)Python中的main

理解Python的【if __name__ == '__main__':】之前,需要了解模块的概念。

模块是扩展名为.py的文件,是组合代码,函数的文件。

对于__name__,先看段代码:

以下代码所在文件名为function_test.py,在该文件中导入(import)了demo_list模块(文件),即上面的demo_list.py


 
 
  1. from demo_list import fact
  2. if __name__== '__main__':
  3. print( '当前执行文件名:' + __name__)
  4. print( "阶乘:", fact( 3))

执行结果:

【__name__解释】:

__name__是系统内置变量,代表所在模块名字,也即所在文件名。

当模块直接运行时,如(1)中的demo_list.py文件被直接运行,__name__的值为“__main__”;

当模块被导入到其他文件,如demo_list被导入到function_test.py中,并且程序在function_test.py被执行时, demo_list.py中的__name__的值为demo_list,为其模块名,而不是__main__。而function_test.py的__name__的值为__main__,因为程序从function_test.py开始执行。

一般,语句【if __name__ == '__main__':】所在的文件(或称模块)是主程序,当主程序运行时,【if __name__ == '__main__':】冒号后面的代码会被执行,因为主程序中,__name__的值为“__main__”。

    • 0
      点赞
    • 0
      收藏
      觉得还不错? 一键收藏
    • 0
      评论

    “相关推荐”对你有帮助么?

    • 非常没帮助
    • 没帮助
    • 一般
    • 有帮助
    • 非常有帮助
    提交
    评论
    添加红包

    请填写红包祝福语或标题

    红包个数最小为10个

    红包金额最低5元

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

    抵扣说明:

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

    余额充值