Python1_Python的目录结构、执行顺序、__name__ == __main__
Python执行顺序
python属于脚本语言,不像编译型的语言那样先将程序编译成二进制后再运行,而是动态地逐行解释运行;
也就是从脚本的第一行开始运行,没有统一的入口。
python会从文件的第一行开始执行,并且会执行非def的内容;
在一个.py文件中,如果不是在定义函数,也就是def关键字的内嵌结构中,python会默认其余部分函数是main函数,并自动执行,
但是正规工程中,一般都会将main函数写成 if __name__ = __main__
=====================================================
什么是 __name__ == __main__
模块有个内置的属性叫做__name__,这个属性的值是模块名,当模块是直接被运行而不是通过import的方式时,__name__的值为__main__。
通过运用这个性质,可以将这个表达式作为main函数的入口。
一个python源文件除了可以被直接运行之外,还可以直接作为模块,被其他.py文件导入。
当模块被import时,__name__ == __main__以下的内容就不会被运行。通过这样的方式,我们可以让一部分不希望运行的代码不被运行。
当.py文件(模块)被直接运行时,则其没有包结构,其__name__值为 __main__,即模块名为 __main__。则 if __name__ == '__main__'之下的代码将被运行。
前面说到python没有统一的入口去运行,那么通过运用这一性质,可以人为约定一个执行入口。
=====================================================
参考链接:
目录结构:https://www.cnblogs.com/bigberg/p/6423164.html
__name__ == '__main__' :https://blog.csdn.net/yjk13703623757/article/details/77918633/
python程序的执行顺序:
https://www.xuebuyuan.com/3236906.html
http://www.elecfans.com/lab/code/20180426668700.html
https://www.jianshu.com/p/119ed1160c10
https://www.cnblogs.com/cnXuYang/p/8336370.html
https://www.cnblogs.com/keguo/p/9760361.html
Python1_Python的目录结构、执行顺序、__name__ == __main__的更多相关文章
- Pycharm上python unittest不执行"if __name__ == '__main__' "问题or选择非unittest run
转:http://www.cnblogs.com/csjd/p/6366535.html python unittest不执行"if __name__ == '__main__' " ...
- python unittest不执行"if __name__ == '__main__' "问题(Pycharm)
问题: 1.selenium导入unittest框架和HtmlReport框架后,HtmlReport不被执行. 2.IDE为Pycharm 假设代码为: from selenium import w ...
- Python 同一文件中,有unittest不执行“if __name__ == '__main__”,不生成HTMLTestRunner测试报告的解决方案
1.问题:Python中同一个.py文件中同时用unittest框架和HtmlReport框架后,HtmlReport不被执行. 2.为什么?其实不是HtmlReport不被执行,也不是HtmlRep ...
- python中关于不执行if __name__ == '__main__':测试模块的解决
1.新建测试脚本文件: 2.编辑测试脚本 import unittest import requests import json import HTMLTestRunner ur1 = 'http:/ ...
- python unittest单元测试框架-3用例执行顺序、多级目录、装饰器、fixtures
1.用例执行顺序 unittest默认会按照ascii码的顺序,依次执行.类名--方法名排序,使用discover也是默认排序.如果不想使用默认排序,就使用testsuite测试集的方式. impor ...
- cucumber 文件目录结构和执行顺序
引用链接:http://www.cnblogs.com/timsheng/archive/2012/12/10/2812164.html Cucumber是Ruby世界的BDD框架,开发人员主要与两类 ...
- Python中的if __name__='__main__'语句的作用
笔者在自学Python的过程中,对于if __name__='__main__'的用法感到很困惑,在think Python一书中原作者的源代码是这么解释if __name__='__main__'语 ...
- 小白的Python之路 if __name__ == '__main__' 解析
if __name__ == '__main__' 参考文献: http://www.cnblogs.com/xuxm2007/archive/2010/08/04/1792463.html http ...
- Python - __name__ == '__main__'
if __name__ == '__main__': app.run() __name__系统变量指示模块应如何被加载,他的值为"__main__"时表示当前模块是被直接执行. _ ...
随机推荐
- ASO优化经验:APP关键字优化的技巧
当开发首款产品的时候,可能你根本连ASO是什么都不知道,因为有太多别的事情需要你做.大多数新手开发商甚至到游戏要进入Appstore的时候才知道有“关键字”这件事要去研究.正因为这些开发商几乎没有在关 ...
- python 函数定义与调用时,不定长参数的传入
- POJ-3026_Borg Maze
Borg Maze Time Limit: 1000MS Memory Limit: 65536K Description The Borg is an immensely powerful race ...
- TIJ——Chapter Twelve:Error Handling with Exception
Exception guidelines Use exceptions to: Handle problems at the appropriate level.(Avoid catching exc ...
- 64位linux源码安装mysql
一:下载mysql http://dev.mysql.com/downloads/mysql/中的Generally Available(GA) Releases标签页,在MySQL Communit ...
- tyvj1467 通向聚会的道路
背景 Candy住在一个被划分为n个区域的神奇小镇中,其中Candy的家在编号为n的区域,Candy生日这天,大家都急急忙忙赶去Candy家庆祝Candy的生日. 描述 Candy共有t个朋友 ...
- 一 linux安装python3
参考 https://www.cnblogs.com/pyyu/p/7402145.html?tdsourcetag=s_pcqq_aiomsg 1 下载 网址:https://www.python. ...
- 跳出手掌心--如何立即触发UIButton边界事件
http://www.cocoachina.com/ios/20150611/12082.html 最近在使用UIButton的过程中遇到一个问题,我想要获得手指拖动button并离开button边界 ...
- @codeforces - 1153F@ Serval and Bonus Problem
目录 @description@ @solution@ @accepted code@ @details@ @description@ 从一条长度为 l 的线段中随机选择 n 条线段,共 2*n 个线 ...
- mysql把一个表的字段update成另一个表的字段根据id
mysql把一个表的字段update成另一个表的字段根据id 1.填充activity表里面的creator字段,用org的founderid,其中activity的orgid要和org的id对应,具 ...