首页 / 知识
python没有main函数吗
2023-11-12 13:13:00
相信很多初学python的人看代码的时候都会先找一下main()方法,从main往下看。但事实上python中是没有你理解中的“main()”方法的。if__name__=="__main__":可以看成是python程序的入口,就像java中的main()方法,但不完全正确。
事实上python程序是从上而下逐行运行的,在.py文件中,除了def后定义函数外的代码都会被认为是“main”方法中的内容从上而下执行。如果只是写个伟大的"helloworld",不想写函数的话,仅仅是print('helloworld')就可以,这就是一个“程序”,不需要所谓的“main”方法入口。当然如果是测试函数功能就需要在.py文件中写上if__name__=="__main__",再调用函数。比如下面的hello.py文件:
print("first")
defsayHello():
str="hello"
print(str);
print(__name__+'fromhello.sayhello()')
if__name__=="__main__":
print('Thisismainofmodule"hello.py"')
sayHello()
print(__name__+'fromhello.main')
运行结果:
first
Thisismainofmodule"hello.py"
hello
__main__fromhello.sayhello()
__main__fromhello.main
懂我意思吧?先执行的第一行print再执行“入口”中的东西。
话说回来,if__name__=="__main__"这句话是个什么意思呢?
__name__其实是一个内置属性,指示当前py文件调用方式的方法。当上述例子运行的时候,整个程序中不管是哪个位置的__name__属性,值都是__main__,当这个hello.py文件作为模块被导入到另一个.py文件中(即import)比如说world.py,并且你运行的是world.py,此时hello.py中的__name__属性就会变成hello,所谓的入口因为if判断失败就不执行了。
所以if语句的判断成功虚拟了一个main()方法。
说到了phthon是逐行执行的,所以当它读到importhello的时候,也会执行hello.py,比如运行如下world.py文件:
importhello#上一个例子的hello.py
if__name__=="__main__":
print('Thisismainofmodule"world.py"')
hello.sayHello()
print(__name__)
执行结果:
first
Thisismainofmodule"world.py"
hello
hellofromhello.sayhello()
__main__
可以看到hello.py中的第一行print('first')直接被执行了,并且hello.py中的__name__输出的也是hello,world.py中的name输出的是__main__。
总结:要适应python没有main()方法的特点。所谓的入口其实也就是个if条件语句,判断成功就执行一些代码,失败就跳过。没有java等其他语言中那样会有特定的内置函数去识别main()方法入口,在main()方法中从上而下执行。
以上内容为大家介绍了python培训之没有main函数吗,希望对大家有所帮助,如果想要了解更多Python相关知识,请关注我们
最新内容
相关内容
python如何读取文件
python如何读取文件,培训,数据,文件,信息,有限,操作系统,对象,磁盘,函数,表示,读写文件前,我们先必须了解一下,在磁盘上读写文件的功能都是由操python有map方法吗
python有map方法吗,培训,位置,数据,函数,列表,序列,参数,元素,方法,使用方法,python中的map:map()会根据提供的函数对指定序列做映射。第一个python如何注释代码行
python如何注释代码行,代码,培训,位置,注释,信息,内容,中文,程序,声明,语法,python中使用井号(‘#’)作为单行注释的符号,语法格式为:#注释内容python如何定义函数
python如何定义函数,培训,概念,代码,环境,函数,定义,语句,括号,结果,冒号,函数的概念:函数是组织好的、具有一定功能的代码片段。在Python中,定python 培训之 object是什么类型
python 培训之 object是什么类型,培训,类型,实例,顶端,对象,关系,链条,父子,数据类型,属性,在Python的世界中,object是父子关系的顶端,所有的数pythonid函数如何运行
pythonid函数如何运行,培训,地址,代码,对象,函数,内存,类型,可能会,整数,字符串,id(object)功能:返回的是对象的“身份证号”,唯一且不变,但在不python怎样启动python程序运行
python怎样启动python程序运行,代码,环境,项目,工具,培训,业务,有限,程序,源文件,功能,执行Python程序的三种方式解释器——python/python3交python函数嵌套时怎么调用
python函数嵌套时怎么调用,培训,函数,周期,变量,嵌套,作用,定义,里面,上层,也就是说,python允许创建嵌套函数。也就是说我们可以在函数里面定pythonmap函数怎么显示结果
pythonmap函数怎么显示结果,培训,代码,数字,函数,结果,序列,元素,参数,可能会,惰性,map()函数接收两个参数,一个是函数,一个是Iterable,map将传python写代码怎么跳下一行
python写代码怎么跳下一行,培训,代码,括号,末尾,空格,字符串,也就是,对象,以上,两个,python里一行写不下,拆成多行,有两种办法:\和()两种方法在python如何打开文件夹
python如何打开文件夹,培训,图片,文件,方式,尾部,格式,内容,文件夹,存在,参数,python下打开文件超级简单,不用导入任何包,直接输入f=open(your_pythonstr函数怎么用
pythonstr函数怎么用,培训,函数,字符串,整数,参数,列表,示例,初始化,变量,字典,str函数是Python的内置函数,其语法格式为str(object)返回值:返