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__”。