首页 > 编程语言 >Python中的main方法教程

Python中的main方法教程

时间:2023-01-06 17:15:14浏览次数:50  
标签:__ 教程 name Python py print main hello

估计很多人跟我一样初学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文件:

# Python学习交流QQ群:711312441
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()方法中从上而下执行

标签:__,教程,name,Python,py,print,main,hello
From: https://www.cnblogs.com/xxpythonxx/p/17031000.html

相关文章

  • Python 函数递归教程
    1.什么是函数递归函数的嵌套调用:一个函数里面又写了一个函数。函数的递归调用:他是一种特殊的嵌套调用,他也是在函数里面调用函数,但是他在函数体内调用的函数时他自己本身......
  • Git管理版本详细教程
    一、远程仓库与本地仓库关联的逻辑关系Remote: 远程仓库,即你在 Github 或者 Gitee 等平台上创建的项目仓库;Repository: 本地仓库,你可以认为就是我们拉取项目后生......
  • 第一节:环境准备、项目结构详解、App.vue/main.js/uni.scss详解、各种引用(组件/js/css
    一. 环境准备1. HbuilderX 下载地址:https://www.dcloud.io/hbuilderx.html 2. 微信开发工具 下载地址:https://developers.weixin.qq.com/miniprogram/dev......
  • Overt.GrpcTemplate.Service 模板使用教程
     1.Overt.GrpcTemplate.Service .NetCore3.1版本模板名称改成 Overt.GrpcTemplateV3.Service源码地址:https://github.com/overtly/template.gitidentity:Ov......
  • 微信开发者工具安装扩展插件教程
    第一步:打开微信开发者工具,然后点击菜单栏的设置  第二步:点击通用设置       第三步:进入设置后,点击扩展        第......
  • SVN使用教程
    常见图标状态1、常规:绿色圈带白色对勾,主要是表示自己电脑上的文件或者文件夹与SVN服务器上对应的文件一致,在自己电脑没有进行任何修改。2、修改:红色圈带白色感叹号,当你......
  • python_selenium元素定位_xpath(2)
     selenium自动化脚本最基础的就是元素定位和元素操作,下面就以百度为例介绍最常见的xpath定位方式基本定位方式:以百度的搜索框为例fromseleniumimportwebdriverim......
  • python + selenium 常用公共方法封装
     selenium环境配置及浏览器驱动的安装:https://www.cnblogs.com/gancuimian/p/16435300.htmluiautomator2常用公共方法封装见之前的帖子:https://www.cnblogs.com/gancu......
  • Python爬取往期股票数据,分析中奖规律!
    快过年了,手头有点紧,但是作为一个男人,身上怎么能够没有大把钞票呢?于是我决定用Python来分析一波股票,赢了会所嫩*,输了下海干活!好了,上面是我吹牛逼的,不过确实有小伙......
  • python 调试 qml
    1.设置pycharm的parameters-qmljsdebugger=port:10002,block 2.python启动调试:点击debug按钮   3.设置qtcreaterqtcreater中打开要调试的文件,打上断点......