有关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函数的恰当写法相关推荐

  1. linux 为什么 c语言,为什么C程序里一定要写main函数

    为什么C程序里一定要写main函数 一. 学习过程 编写程序f.c: 对其进行编译,正常通过,再对其进行连接,出现错误: 显示的出错信息为: 翻译成中文是:在c0s模块没有定义符号'_main'. 那 ...

  2. android的应用入口点函数,android 没有main函数,怎么找到程序执行入口呢?以及activity主要生命周期的方法说明...

    android应用程序,由一到多个Activity组成.每个Activity没有很紧密的联系,因为我们可以在自己的程序中调用其它Activity,特别是调用自己的代码之外生成的Activity,比如a ...

  3. java main函数_都知道Java程序的入口方法是main,那你知道为什么是main方法吗?

    我们都知道Java的入口方法是main函数,下面这段代码就是Java中非常经典的Hello World代码: 我们通过Java提供的工具进行编译执行: 通过上面的代码我们知道Java入口方法的几个要求 ...

  4. c语言规定对于一个正常运行的c程序,下列叙述中正确的是,对于一个正常运行的C语言程序,以下叙述中正确的是()。A.程序的执行总是从main函数开始,在main函...

    对于一个正常运行的C语言程序,以下叙述中正确的是().A.程序的执行总是从main函数开始,在main函 更多相关问题 某35 kV配电装置室长70m,按规程规定宜设置出口个数.( ) 加工中心的主要 ...

  5. 题8.6:写一函数,求一个字符串的长度。在main函数中输入字符串,并输出其长度。

    题目 本题是谭浩强<C程序设计课后习题>题8.6. 题目: 写一函数,求一个字符串的长度.在main函数中输入字符串,并输出其长度. 以下是本篇文章正文内容,欢迎朋友们进行指正,一起探讨, ...

  6. 对main函数的理解c语言,C语言编程漫谈——main函数

    写在前面 促使我写这篇文章是因为我这几天找了几个一样是大三的同学,与我相同专业相同方向(物联网)的人,除了@小胡同的诗,基本没有什么其他人会现在看起来很简单的编程题目了.问了一下其他同学,他们大部分都 ...

  7. 写一个函数,求一个字符串的长度,在main 函数中输入字符串,并输出其长度。

    // 写一个函数,求一个字符串的长度,在main 函数中输入字符串,并输出其长度. #include <stdio.h> main() {  int len;  char*str[20]; ...

  8. 习题 8.6 写一函数,求一个字符串的长度。在main函数中输入字符串,并输出其长度。

    C程序设计(第四版) 谭浩强 习题8.6 个人设计 习题 8.6 写一函数,求一个字符串的长度.在main函数中输入字符串,并输出其长度. 代码块: 方法1: #include <stdio.h ...

  9. 写一个函数,求一个字符串的长度。在main函数中输入字符串,并输出其长度

    写一个函数,求一个字符串的长度.在main函数中输入字符串,并输出其长度 代码如下: #include<stdio.h> int len(char *p); int main() {int ...

最新文章

  1. 没事抽空学——常用界面组件属性
  2. python是用c写的吗-Python是编写人工智能最佳的编程语言吗?
  3. Siverlight去掉ToolTip的白色边框
  4. Python之Pyforest:Pyforest的简介、安装、使用方法之详细攻略
  5. Cisco交换机端口聚合、VTP、ACL配置实例
  6. 腾讯邓君:《王者荣耀》翻过的同步技术相关的三座大山
  7. Ubuntu10.04制作官方源镜像以及搭建本地源
  8. 【java】从进程角度理解java
  9. linux下ppp拨号无线上网
  10. hibernate 查询id为空懒加载_hibernate 查询时指定查询字段、级联表的一种方式
  11. 深入了解TMG企業版的獨立陣列
  12. 三星固态优化软件.samsung magician 中文下载地址
  13. MASM32 Editor的使用
  14. 这就是为什么上帝和魔鬼都喜欢数学......
  15. 虚短”“虚断”两板斧,搞定运算放大器 11张大图详(转)
  16. Opencv surf算法
  17. [笔记分享] [Camera] msm8x25 camera hal 流程记录
  18. java 图片与base64相互转化
  19. 怎样通过计算机修改蓝牙音箱,有线音箱怎么改蓝牙无线音箱 有线音箱改无线音箱方法介绍【详解】...
  20. 【面试】计算机操作系统

热门文章

  1. shell for循环命令行_精心汇总的24道shell脚本面试题
  2. XamarinAndroid组件教程设置动画的时长参数
  3. OpenVAS漏洞扫描基础教程之连接OpenVAS服务
  4. 明明白白学C#0.1.2 什么是编程语言
  5. java cdata xml 解析,如何解析lt;![CDATA []]gt;的XML
  6. ansys如何删除线_ANSYS影响面计算与绘制方法介绍
  7. 随机邻域嵌入_「论文阅读」-学习用于通勤流嵌入的地理上下文嵌入
  8. bash: go: 未找到命令_【安全入门】centos7java/python/go语言环境安装
  9. quota在oracle,Oracle的表空间quota详解
  10. 使用Leap Motion Orion开发酷炫的手势识别VR/AR应用