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__的更多相关文章

  1. Pycharm上python unittest不执行"if __name__ == '__main__' "问题or选择非unittest run

    转:http://www.cnblogs.com/csjd/p/6366535.html python unittest不执行"if __name__ == '__main__' " ...

  2. python unittest不执行"if __name__ == '__main__' "问题(Pycharm)

    问题: 1.selenium导入unittest框架和HtmlReport框架后,HtmlReport不被执行. 2.IDE为Pycharm 假设代码为: from selenium import w ...

  3. Python 同一文件中,有unittest不执行“if __name__ == '__main__”,不生成HTMLTestRunner测试报告的解决方案

    1.问题:Python中同一个.py文件中同时用unittest框架和HtmlReport框架后,HtmlReport不被执行. 2.为什么?其实不是HtmlReport不被执行,也不是HtmlRep ...

  4. python中关于不执行if __name__ == '__main__':测试模块的解决

    1.新建测试脚本文件: 2.编辑测试脚本 import unittest import requests import json import HTMLTestRunner ur1 = 'http:/ ...

  5. python unittest单元测试框架-3用例执行顺序、多级目录、装饰器、fixtures

    1.用例执行顺序 unittest默认会按照ascii码的顺序,依次执行.类名--方法名排序,使用discover也是默认排序.如果不想使用默认排序,就使用testsuite测试集的方式. impor ...

  6. cucumber 文件目录结构和执行顺序

    引用链接:http://www.cnblogs.com/timsheng/archive/2012/12/10/2812164.html Cucumber是Ruby世界的BDD框架,开发人员主要与两类 ...

  7. Python中的if __name__='__main__'语句的作用

    笔者在自学Python的过程中,对于if __name__='__main__'的用法感到很困惑,在think Python一书中原作者的源代码是这么解释if __name__='__main__'语 ...

  8. 小白的Python之路 if __name__ == '__main__' 解析

    if __name__ == '__main__' 参考文献: http://www.cnblogs.com/xuxm2007/archive/2010/08/04/1792463.html http ...

  9. Python - __name__ == '__main__'

    if __name__ == '__main__': app.run() __name__系统变量指示模块应如何被加载,他的值为"__main__"时表示当前模块是被直接执行. _ ...

随机推荐

  1. 2019-9-23-dotnet-判断特定进程存在方法

    title author date CreateTime categories dotnet 判断特定进程存在方法 lindexi 2019-09-23 16:20:42 +0800 2019-09- ...

  2. Docker镜像部分详解

    拉取镜像: docker pull [选项] [Docker Registry 地址[:端口号]/]仓库名[:标签] Docker 镜像仓库地址:地址的格式一般是 [:端口号].默认地址是 Docke ...

  3. hdu 3652 【数位dp】

    hdu 3652 题意:求1到n中包含'13'('13'不一定连续)且能被13整除的数的个数. 这是我第一道比较了能看懂的数位dp.定义状态dp[pos][res][sta]表示处理到第pos位,模的 ...

  4. MySQL 获取当前月的天数

    select curdate();                       --获取当前日期 select DATE_ADD(curdate(),interval -day(curdate())+ ...

  5. 第四次C++

    继承与派生 一.什么是继承和派生 所谓继承就是从先辈处得到属性和行为特征.类的继承,是新的类从已有类那里得到已有的特性.从另一个角度来看这个问题,从已有类产生新类的过程就是类的派生.类的继承与派生机制 ...

  6. TensorFlow 池化层

    在 TensorFlow 中使用池化层 在下面的练习中,你需要设定池化层的大小,strides,以及相应的 padding.你可以参考 tf.nn.max_pool().Padding 与卷积 pad ...

  7. @noi.ac - 489@ shuffle

    目录 @description@ @solution@ @accepted code@ @details@ @description@ 给定一个长度为 n 的序列 s1,s2,-,sn,它有 2^n− ...

  8. js递归遍历树结构(tree)

    如图: 代码: let datas = [] //是一个树结构的数据 setName(datas){ //遍历树 获取id数组 for(var i in datas){ this.expandedKe ...

  9. Wood Processing牛客第十场 斜率优化DP

    卧槽我感觉写的是对的,但是就是样例都过不了...留坑 #include<iostream> #include<stdio.h> #include<string.h> ...

  10. 神经网络入门——8XOR感知器

    XOR 感知器     XOR 感知器就是一个这样的逻辑门:输入相同返回 0 ,输入不同返回 1.与之前的感知器不同,这里并不是线性可分的.要处理这类较为复杂的问题,我们需要把感知器连接起来. 我们用 ...