关于Python中的main方法教程

 更新时间:2023年03月28日 14:18:49   作者:Python 学习者  
估计很多人跟我一样初学python看代码的时候先找一下main()方法,从main往下看。但事实上python中是没有你理解中的“main()”方法的,一起来看看吧

正文开始

if name == "main":可以看成是python程序的入口,就像java中的main()方法,但不完全正确。

事实上python程序是从上而下逐行运行的,在.py文件中,除了def后定义函数外的代码都会被认为是“main”方法中的内容从上而下执行。如果只是写个伟大的"hello world",不想写函数的话,仅仅是print(‘hello world’)就可以,这就是一个“程序”,不需要所谓的“main”方法入口。当然如果是测试函数功能就需要在.py文件中写上if name == "main",再调用函数。

比如如下hello.py文件:

print("first")
 
 
def sayHello():
    str = "hello"
    print(str);
    print(__name__+'from hello.sayhello()')
 
 
if __name__ == "__main__":
    print ('This is main of module "hello.py"')
    sayHello()
    print(__name__+'from hello.main')

 运行结果:

first
This is main of module "hello.py"
hello
__main__ from hello.sayhello()
__main__ from hello.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是逐行执行的,所以当它读到import hello的时候,也会执行hello.py,比如运行如下world.py文件:

import hello#上一个例子的hello.py
 
if __name__ == "__main__":
    print ('This is main of module "world.py"')
    hello.sayHello()
    print(__name__)

执行结果:

first
This is main of module "world.py"
hello
hellofrom hello.sayhello()
main

可以看到hello.py中的第一行print(‘first’)直接被执行了,并且hello.py中的__name__输出的也是hello,world.py中的name输出的是__main__

总结:

要适应python没有main()方法的特点。所谓的入口其实也就是个if条件语句,判断成功就执行一些代码,失败就跳过。没有java等其他语言中那样会有特定的内置函数去识别main()方法入口,在main()方法中从上而下执行

到此这篇关于关于Python中的main方法教程的文章就介绍到这了,更多相关Python的main方法内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Python对XML文件实现增删改查操作

    Python对XML文件实现增删改查操作

    这篇文章主要为大家详细介绍了Python对XML文件进行实现增删改查操作的方法,文中的示例代码讲解详细,具有一定的借鉴价值,感兴趣的可以了解一下
    2022-11-11
  • python是否适合网页编程详解

    python是否适合网页编程详解

    在本篇文章里我们给各位整理了一篇关于python是否适合网页编程详解内容,有需要的朋友们可以学习下。
    2019-10-10
  • 使用Python轻松实现一个简单的图床功能

    使用Python轻松实现一个简单的图床功能

    在网上分享图片或将图片嵌入到网页中时,通常需要一个图床来存储和管理这些图片,所以本文就来为大家介绍一下如何使用Python轻松实现一个简单的图床功能吧
    2024-01-01
  • 浅析Python中作用域的应用

    浅析Python中作用域的应用

    这篇文章主要是想和大家一起来讨论下去Python中的命名空间、作用域和LEGB规则等不同概念,文中的示例代码简洁易懂,快跟随小编一起来学习一下吧
    2023-08-08
  • python实现n个数中选出m个数的方法

    python实现n个数中选出m个数的方法

    今天小编就为大家分享一篇python实现n个数中选出m个数的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-11-11
  • Python  Pandas教程之使用 pandas.read_csv() 读取 csv

    Python  Pandas教程之使用 pandas.read_csv() 读取 csv

    这篇文章主要介绍了Python Pandas教程之使用pandas.read_csv()读取csv,文章通过围绕主题展开详细的内容介绍,具有一定的参考价值,需要的小伙伴可以参考一下
    2022-09-09
  • Python内置函数locals和globals对比

    Python内置函数locals和globals对比

    这篇文章主要介绍了Python内置函数locals和globals对比,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-04-04
  • 关于pandas.DataFrame的类SQL操作

    关于pandas.DataFrame的类SQL操作

    这篇文章主要介绍了关于pandas.DataFrame的类SQL操作方式,具有很好的参考价值,希望对大家有所帮助,
    2023-08-08
  • 详解Python字符串原理与使用的深度总结

    详解Python字符串原理与使用的深度总结

    本文将学习字符串数据类型相关知识,将讨论如何声明字符串数据类型,字符串数据类型与 ASCII 表的关系,字符串数据类型的属性,以及一些重要的字符串方法和操作,超级干货,不容错过
    2022-05-05
  • 解决Python logging模块无法正常输出日志的问题

    解决Python logging模块无法正常输出日志的问题

    今天小编就为大家分享一篇解决Python logging模块无法正常输出日志的问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-02-02

最新评论