python main函数
这里简单的介绍一下,在Python中使用main函数的方法
#hello.py
def foo():
str="function"
print(str);
if __name__=="__main__":
print("main")
foo()
其中if __name__=="__main__":这个程序块类似与Java和C语言的中main(主)函数
在Cmd中运行结果
C:\work\python\divepy>python hello.py
main
function
在Python Shell中运行结果
>>> import hello
>>> hello.foo()
function
>>> hello.__name__
'hello'
>>>
可以发现这个内置属性__name__自动的发生了变化。
这是由于当你以单个文件运行时,__name__便是__main__
当你以模块导入使用时,这个属性便是这个模块的名字。
在C/C++/Java中,main是程序执行的起点,Python中,也有类似的运行机制,但方式却截然不同:Python使用缩进对齐组织代码的执行,所有没有缩进的代码(非函数定义和类定义),都会在载入时自动执行,这些代码,可以认为是Python的main函数。
每个文件(模块)都可以任意写一些没有缩进的代码,并且在载入时自动执行,为了区分主执行文件还是被调用的文件,Python引入了一个变量__name__,当文件是被调用时,__name__的值为模块名,当文件被执行时,__name__为'__main__'。这个特性,为测试驱动开发提供了极好的支持,我们可以在每个模块中写上测试代码,这些测试代码仅当模块被Python直接执行时才会运行,代码和测试完美的结合在一起。
典型的Python文件结构:
python main函数相关推荐
- python main函数返回值,Python main函数
Python main函数 Python main函数教程 Python 中的 main() 函数只有当该 Python 脚本直接作为执行程序时才会执行,当该 Python 脚本被作为模块被导入时,其 ...
- [ 7天学习Python编程,第一天]-----1.4 Python main函数:了解__main__【python舵手】
PYTHON MAIN FUNCTION是任何程序的起点.当程序运行时,python解释器将顺序运行代码.仅当主函数作为Python程序运行时才执行.如果将其作为模块导入,它将不会运行main函数. ...
- python程序一定要有主函数_Python 没有main函数的原因
毫无疑问 Python 中没有所谓的 main 入口函数,但是网上经常看到一些文章提"Python 的 main 函数"."建议写 main 函数"-- 有些人 ...
- 为什么Python没有main函数?
作者 | 豌豆花下猫 来源 | Python猫(ID:python_cat) 众所周知,Python中没有所谓的main函数,但是网上经常有文章提到" Python的main函数" ...
- 为什么 Python 没有 main 函数?
作者 | 豌豆花下猫 来源 | Python猫(ID:python_cat) 众所周知,Python中没有所谓的main函数,但是网上经常有文章提到" Python的main函数" ...
- python打印时间_在Python中定义Main函数(第二部分)
Main函数的最佳实践 既然您已经了解两种执行方式上的差异,那么掌握一些最佳实践方案还是很有用的.它们将适用于编写作为脚本运行的代码或者在另一个模块导入的代码. 如下是四种实践方式: 将大部分代码放入 ...
- import是引进外部函数吗_你必须要知道的Python中的main函数
在很多开发语言中,都有一个叫做mian的主函数,这个函数一般都是程序的入口,当程序启动时,首先执行这个函数. 比如C#语言中的main函数长这个样子. static void Main(string[ ...
- python的主函数如何书写_Python程序的入口在哪里?main函数的恰当写法
有关python入门的更多内容,请参考文章: python语法中没有定义main函数作为程序的入口,因为python的本质是个脚本语言.然而这却让很多人不适应. 重新看一下这段代码样例: if __n ...
- python主函数的作用_python中main函数的用法
原博文 2020-03-27 20:25 − **什么场景下会有main函数?** 当该python脚本被作为模块(module)引入(import)时,其中的main()函数将不会被执行. **ma ...
最新文章
- 有没有想过,自己手写一个连接池?
- 技术晋升的评定与博弈
- 以ABP为基础架构的一个中等规模的OA开发日志
- 微信小程序的setData
- jaxb报错_JAXB做错了; 尝试Xembly
- 虚拟机 centos 7 nginx安装
- Java基础:参数是如何传递的
- oracle查询所有表字段属性_MybatisPlus基础篇学习笔记(四)------查询方法
- C++构造函数详解(复制构造函数)
- 从mysql随机抽取数据_mysql随机抽取一定数量的记录实例讲解
- 在线免费下载音乐网站源码,支持在线播放
- 华为交换机专用堆叠电缆连线指导
- 计算机专业及软件职称,软件工程师职称评定的级别及标准是什么?
- php 图片抠图,php抠图教程(混合模式+剪切蒙版)
- 扣扣机器人唱歌_qq小冰唱歌指令生成器下载-qq小冰唱歌关键字命令生成器 _5577安卓网...
- EI检索实例(相关主题、单位集体、个人)
- springMvc ResultFul风格 url拼接问题
- Mybatis实现同时传入对象参数和字符串参数
- 在数量上超过微型计算机的是什么,西方经济学作业2答案
- 软考高级 真题 2010年上半年 信息系统项目管理师 案例分析
热门文章
- 如何完成dedecms外部数据库调用|跨数据库数据调用
- javascript的bind方法绑定深入理解
- 又见黑科技!量子薄膜传感器或推动VR设备变革
- windows7下修改hosts文件无效解决办法(转)
- 数据结构 data structure
- SQL光标的基本使用
- Q83:怎么画多个PLY文件组合的图形[Multiple-Mesh Objects]
- Anaconda3下载失败的解决方法
- 大数据的价值体现有哪些
- android左右滑动fragment,Android基于ViewPager+Fragment实现左右滑屏效果的方法