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

1、Java和C#的程序入口

Java的程序入口Main函数

public static void Main(string[] args)
{
//方法体
}

C#的程序入口Main函数

public static void Main(string[] args)
{
//方法体
}

2、Python的程序入口

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

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

如下:demo_list.py

b=[]
b.append("test")
b.append("apple")
b.append("banana")
for a in b:
    print(a)


def fact(n):
    if n == 1:
        return n
    else:
        return n * fact(n-1)
print("阶乘:", fact(3))

print('__name__是模块名字(文件名),值为:'+__name__)

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

(2)Python中的main

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

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

对于__name__,先看段代码:

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

from demo_list import fact


if __name__=='__main__':
    print('当前执行文件名:' + __name__)
    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__”。

  • 22
    点赞
  • 47
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值