python的主函数如何书写_Python程序的入口在哪里?main函数的恰当写法
有关python入门的更多内容,请参考文章:
python语法中没有定义main函数作为程序的入口,因为python的本质是个脚本语言。然而这却让很多人不适应。
重新看一下这段代码样例:
if __name__ == '__main__':
print("233")
这种写法的意思是:这是由于当你以单个文件运行时,__name__这个内置属性便是‘__main__’,而当你以模块导入使用时,这个属性便是这个模块的名字。所以只在这个文件单独执行的时候实行以下代码,便达成了跟main函数差不多的功能。
但是这个写法有个问题,那就是main函数将没有返回值(退出代码),而且也不能直接传入命令行参数。从python语法角度来讲,这个根本不算是一个函数,而只是一个if条件句的执行代码块。
因此我们有了一个更复杂的main函数写法。
import sys
def main():
print("233")
if __name__ == "__main__":
main()
这样一来main便成了为真正的python函数,但是这样的main函数结构灵活度并不高。
添加可选的 argv 参数
首先,修改main()函数,使其接受一个可选参数 argv,支持在交互式shell中调用该函数:
import sys
def main(argv=None):
if argv is None:
argv = sys.argv
if len(argv) < 2:
print("233")
else:
print(argv[1])
return 0
if __name__ == "__main__":
sys.exit(main())
在这里,我们不把main函数的参数表写成def main(argv=sys.argv):是因为在调用函数时,sys.argv 的值可能会发生变化;可选参数的默认值都是在定义main()函数时,就已经计算好的。
但是现在sys.exit()函数调用会产生问题:当main()函数调用sys.exit()时,交互式解释器就会推出“!”。解决办法是让main()函数的返回值指示退出状态(exit status)。因此,最后面的那行代码就变成了这样:sys.exit(main())
python的主函数如何书写_Python程序的入口在哪里?main函数的恰当写法相关推荐
- linux 为什么 c语言,为什么C程序里一定要写main函数
为什么C程序里一定要写main函数 一. 学习过程 编写程序f.c: 对其进行编译,正常通过,再对其进行连接,出现错误: 显示的出错信息为: 翻译成中文是:在c0s模块没有定义符号'_main'. 那 ...
- android的应用入口点函数,android 没有main函数,怎么找到程序执行入口呢?以及activity主要生命周期的方法说明...
android应用程序,由一到多个Activity组成.每个Activity没有很紧密的联系,因为我们可以在自己的程序中调用其它Activity,特别是调用自己的代码之外生成的Activity,比如a ...
- java main函数_都知道Java程序的入口方法是main,那你知道为什么是main方法吗?
我们都知道Java的入口方法是main函数,下面这段代码就是Java中非常经典的Hello World代码: 我们通过Java提供的工具进行编译执行: 通过上面的代码我们知道Java入口方法的几个要求 ...
- c语言规定对于一个正常运行的c程序,下列叙述中正确的是,对于一个正常运行的C语言程序,以下叙述中正确的是()。A.程序的执行总是从main函数开始,在main函...
对于一个正常运行的C语言程序,以下叙述中正确的是().A.程序的执行总是从main函数开始,在main函 更多相关问题 某35 kV配电装置室长70m,按规程规定宜设置出口个数.( ) 加工中心的主要 ...
- 题8.6:写一函数,求一个字符串的长度。在main函数中输入字符串,并输出其长度。
题目 本题是谭浩强<C程序设计课后习题>题8.6. 题目: 写一函数,求一个字符串的长度.在main函数中输入字符串,并输出其长度. 以下是本篇文章正文内容,欢迎朋友们进行指正,一起探讨, ...
- 对main函数的理解c语言,C语言编程漫谈——main函数
写在前面 促使我写这篇文章是因为我这几天找了几个一样是大三的同学,与我相同专业相同方向(物联网)的人,除了@小胡同的诗,基本没有什么其他人会现在看起来很简单的编程题目了.问了一下其他同学,他们大部分都 ...
- 写一个函数,求一个字符串的长度,在main 函数中输入字符串,并输出其长度。
// 写一个函数,求一个字符串的长度,在main 函数中输入字符串,并输出其长度. #include <stdio.h> main() { int len; char*str[20]; ...
- 习题 8.6 写一函数,求一个字符串的长度。在main函数中输入字符串,并输出其长度。
C程序设计(第四版) 谭浩强 习题8.6 个人设计 习题 8.6 写一函数,求一个字符串的长度.在main函数中输入字符串,并输出其长度. 代码块: 方法1: #include <stdio.h ...
- 写一个函数,求一个字符串的长度。在main函数中输入字符串,并输出其长度
写一个函数,求一个字符串的长度.在main函数中输入字符串,并输出其长度 代码如下: #include<stdio.h> int len(char *p); int main() {int ...
最新文章
- 没事抽空学——常用界面组件属性
- python是用c写的吗-Python是编写人工智能最佳的编程语言吗?
- Siverlight去掉ToolTip的白色边框
- Python之Pyforest:Pyforest的简介、安装、使用方法之详细攻略
- Cisco交换机端口聚合、VTP、ACL配置实例
- 腾讯邓君:《王者荣耀》翻过的同步技术相关的三座大山
- Ubuntu10.04制作官方源镜像以及搭建本地源
- 【java】从进程角度理解java
- linux下ppp拨号无线上网
- hibernate 查询id为空懒加载_hibernate 查询时指定查询字段、级联表的一种方式
- 深入了解TMG企業版的獨立陣列
- 三星固态优化软件.samsung magician 中文下载地址
- MASM32 Editor的使用
- 这就是为什么上帝和魔鬼都喜欢数学......
- 虚短”“虚断”两板斧,搞定运算放大器 11张大图详(转)
- Opencv surf算法
- [笔记分享] [Camera] msm8x25 camera hal 流程记录
- java 图片与base64相互转化
- 怎样通过计算机修改蓝牙音箱,有线音箱怎么改蓝牙无线音箱 有线音箱改无线音箱方法介绍【详解】...
- 【面试】计算机操作系统
热门文章
- shell for循环命令行_精心汇总的24道shell脚本面试题
- XamarinAndroid组件教程设置动画的时长参数
- OpenVAS漏洞扫描基础教程之连接OpenVAS服务
- 明明白白学C#0.1.2 什么是编程语言
- java cdata xml 解析,如何解析lt;![CDATA []]gt;的XML
- ansys如何删除线_ANSYS影响面计算与绘制方法介绍
- 随机邻域嵌入_「论文阅读」-学习用于通勤流嵌入的地理上下文嵌入
- bash: go: 未找到命令_【安全入门】centos7java/python/go语言环境安装
- quota在oracle,Oracle的表空间quota详解
- 使用Leap Motion Orion开发酷炫的手势识别VR/AR应用