关于__name__=='__main__'的理解
一、总的来说,如果__name__=='__main__'成立,表示当前模块就是主程序,
如果__name__=='__main__'不成立,表示当前模块是被导入到某个模块中的,而此时__name__的值是被导入的这个模块的模块名
举例说明:
PP.py
#coding=utf-8
class F1():
print ''
def add(self):
print 'F1的add方法'
def jian(self):
print 'F1的jian方法'
if __name__=='PP':
print 'PP被导入了'
if __name__=='__main__':
print '我是主程序,被执行'
运行PP结果为: 此时PP是主程序,所以__name__的值是__main__,执行结果就如下:
0000
我是主程序,被执行
pp2.py模块
#coding=utf-8
from PP import * #一旦被导入,就开始执行
class cat():
def eat(self):
pass
print __name__
pp2的运行结果: 运行结果的前俩句是PP被导入后就会立马执行,PP的执行结果。__main__这个结果是pp2的__name__值
0000
PP被导入了
__main__
所以,模块A是主程序时,A模块的__name__值是__main__,模块A被导入到别的模块B的话,在B里执行A时,A的__name__值是A的模块名称
关于__name__=='__main__'的理解的更多相关文章
- 魔力Python--if __name__ == '__main__' 的理解
if __name__ == '__main__' 的理解 __name__ 是当前模块名,当模块被直接运行时模块名为 __main__ . 这句话的意思就是,当模块被直接运行时,以下代码块将被运行, ...
- Python中if __name__ == "__main__": 的理解
1.在很多python脚本中在最后的部分会执行一个判断语句if __name__ == "__main__:",之后还可能会有一些执行语句.那添加这个判断的目的何在? 在pytho ...
- if __name__ == '__main__的理解
模块之间引用不能循环成环,圆圈 模块的收搜 !!!把模块当作脚本执行 什么叫模块:py文件,如果一个py文件被导入了,他就是一个模块, 模块没有具体的调用过程 但是能对外提供功能 什么叫脚 ...
- Python中if __name__ = "__main__"的理解
通俗的理解__name__ ="__main__"的意思就是:当.py文件被直接运行时,if __name__ = "__main__"之下的代码快将被运行:当 ...
- python对 if __name__=='__main__'的理解
对于学过其他编程语言的人来说都知道程序都是从main函数开始执行的,而对于python来说他并没有主函数,他不像其他语言需要需要转化为二进制文件 然后才能执行,他时通过翻译器从第一行开始逐行执行,所以 ...
- python if __name__=='__main__'的理解
定义一个模块叫module.py: def main(): print "we are in %s" %__name__ if __name__=='__main__': main ...
- 【疑难杂症】if __name__ == '__main__'的理解
今天进行小批量梯度下降时,代码给我报错,具体代码如下 import torch import numpy as np from torch.utils.data import Dataset from ...
- 如何简单地理解Python中的if __name__ == '__main__'
https://blog.csdn.net/yjk13703623757/article/details/77918633 1. 摘要 通俗的理解__name__ == '__main__':假如你叫 ...
- 理解 if __name__ == '__main__'
简单地理解Python中的if __name__ == '__main__' if __name__ == '__main__'的意思是: 当.py文件被直接运行时,if __name__ == '_ ...
随机推荐
- Java基础__随机生成1~15之间不重复的数字
package text; import java.util.ArrayList; import java.util.List; public class Text { public static v ...
- $\LaTeX$数学公式大全9
$9\ Math\ mode\ accents$ $\acute{a}$ \acute{a} $\breve{a}$ \breve{a} $\ddot{a}$ \ddot{a} $\grave{a}$ ...
- uni-app 尺寸单位
uni-app 支持的通用 css 单位包括 px.rpx px 即屏幕像素 rpx 即响应式px,一种根据屏幕宽度自适应的动态单位.以750宽的屏幕为基准,750rpx恰好为屏幕宽度.屏幕变宽,rp ...
- mysql5.7以上基本配置
MySQL表名区分大小写设置 关闭MySQL服务 在服务运行目录找到my.ini或者my.cnf文件 find / -name my.cnf 打开文件,找到[mysqld]在下面增加一行 lower_ ...
- 黑马vue---14、v-model双向绑定
黑马vue---14.v-model双向绑定 一.总结 一句话总结: 1.v-bind 只能实现数据的单向绑定,从 M 自动绑定到 V, 无法实现数据的双向绑定 2.v-model 指令,可以实现 表 ...
- list元素按照日期排序
private static void ListSort(List<AppClassInfoVo> list) { Collections.sort(list, new Comparato ...
- [SQL 高级查询运算符的用法 UNION (ALL),EXCEPT(ALL),INTERSECT(ALL) ]
今天看到 三个查询运算符,给大家分享分享 为此我建立了两张表分别为 Articles 和 newArticles 我建立的时候,只建立了一张表 Articles ,表 newArticles 是 ...
- 服务安全-IAM:百科
ylbtech-服务安全-IAM:百科 IAM(身份识别与访问管理(简称大4A)) IAM(Identity and Access Management 的缩写),即“身份识别与访问管理”,具有单点登 ...
- Azure sql database 监控存储过程的传参情况
背景 实施开发的同事找到我,反馈说项目中使用Azure sql database 之后,无法使用Profiler来监控自己开发的存储过程的参数传参情况.确实profiler这些实例级别的工具在Azur ...
- 059. Spiral Matrix II
题目链接:https://leetcode.com/problems/spiral-matrix-ii/description/ Given a positive integer n, generat ...