关于变量__name__的理解
__name__
1. 基本含义
如果是放在Modules模块中,就表示是模块的名字;
如果是放在Classs类中,就表示类的名字;
2. 模块中的意义
这里重点说一下模块中的意义,这个用法在python中非常常见。若模块是被导入的(import),则__name__的值为模块名字;若模块是被直接执行的,__name__ 的值为‘__main__’
3. 示例
## main.py import test.test def get_name():
print '__name__ = ', __name__ if __name__ == '__main__':
print "**** main ****"
get_name() if __name__ == 'test.test':
print "**** test ****"
get_name()
## test/test.py def get_name():
print '__name__ is ', __name__ if __name__ == '__main__':
print "---- main ----"
get_name() if __name__ == 'test.test':
print "---- test ----"
get_name()
A. 当你运行main.py时,输出如下
B. 当你运行test.py时,输出如下
4. 结论分析
正如我们看到的结果一样,A实验中main.py里面import了test.test模块,因此在test.py中变量__name__的值为test.test,即模块的名字;B实验中test.py里变量变量__name__的值为__main__。
关于变量__name__的理解的更多相关文章
- Python中if __name__ == '__main__':理解
在很多python脚本中在最后的部分会执行一个判断语句if __name__ == "__main__:",之后还可能会有一些执行语句.那添加这个判断的目的何在? 在python编 ...
- Python第八天 模块 包 全局变量和内置变量__name__ Python path
Python第八天 模块 包 全局变量和内置变量__name__ Python path 目录 Pycharm使用技巧(转载) Python第一天 安装 shell 文件 Pyt ...
- python 变量进阶(理解)
变量进阶(理解) 目标 变量的引用 可变和不可变类型 局部变量和全局变量 01. 变量的引用 变量 和 数据 都是保存在 内存 中的 在 Python 中 函数 的 参数传递 以及 返回值 都是靠 引 ...
- Python中“if __name__=='__main__':”理解与总结
1 引言 在Python当中,如果代码写得规范一些,通常会写上一句“if __name__==’__main__:”作为程序的入口,但似乎没有这么一句代码,程序也能正常运行.这句代码多余吗?原理又在哪 ...
- 关于JavaScript变量提升的理解
废话不说,直接上代码(这是在JavaScript面对对象编程指南上面看到的一个例子) var a=123; function f(){ alert(a); var a=1; alert(a); } f ...
- java基础(一):我对java的三个环境变量的简单理解和配置
首先说说java的三个环境变量:java_home,classpath,path java_home:jdk的安装路径[你一层一层点开安装路径,直到当前目录有一个bin目录,然后在地址栏里面右键单击复 ...
- 对python中的__name__的理解
一开始学习python的时候,不理解python中的__name__的用途,一致感觉__name__的返回结果就是__main__ 今天系统的看了一下,才理解过来,__name__真正的用处是用在使用 ...
- javascript中变量提升的理解
网上找了两个经典的例子 var foo = 1; function bar() { if (!foo) { var foo = 10; } alert(foo); } bar(); // 10 var ...
- java中变量赋值的理解
1.当赋值的值超出声明变量的范围时候,会报错! byte a =200 //会报错,因超出范围. byte a =(byte)200;//进行一个强制转换,就不会报错,不过会超出范围,超出部分会从头开 ...
随机推荐
- scala学习笔记4:函数和闭包
以下主要记录的是看完scala in programming这本书functions and closures(第八章)后的要点总结. 1,函数可以存在的地方:函数方法,嵌套函数. 2,关于funct ...
- php中除法取整的方法(round,ceil,floor)
PHP中遇到需要将除法所得结果取整的情况时,就需要用到以下方法: 1. round:四舍五入 round() 函数对浮点数进行四舍五入. 语法:round(x, prec) 参数 描述 x 可选.规定 ...
- 用jquery的.val() 给具有style="display:none;" 属性的标签写值的问题。
今天写项目, 碰到奇怪现象, 用jquery的val()函数怎么都无法给标签赋值,而我确定是否赋值是通过浏览器控制台来看的.其实这种方式不准确,因为具有 style="display:non ...
- LigerUI用Post\Get\Ajax前后台交互方式的写法
parms 参数统一 json格式的数据 url 访问后台的url 设置同步参数 [javascript] view plain copy $.ajaxSetup({ async : false} ...
- 【转】Web 前沿——HTML5 Form Data 对象的使用
XMLHttpRequest Level 2 添加了一个新的接口——FormData.利用 FormData 对象,我们可以通过 JavaScript 用一些键值对来模拟一系列表单控件,我们还可以使用 ...
- C#中练级orcle数据查询
直接贴代码哈哈哈, public DataTable getInfo(int flag) { OracleConnection conn = null; DataSet ds = new DataSe ...
- java匹配http或https的url的正则表达式20180912
package org.jimmy.autosearch20180821.test; import java.util.regex.Matcher; import java.util.regex.Pa ...
- idea开启/关闭单词拼写检查
- 04C#运算符
C#运算符 运算符分类 与C语言一样,如果按照运算符所作用的操作数个数来分,C#语言的运算符可以分为以下几种类型: l 一元运算符:一元运算符作用于一个操作数,例如:-X.++X.X--等. l ...
- Linux从入门到适应(一):VSCode C++环境配置
作为在Windows环境下习惯使用Visual Studio IDE的人,对于Linux环境下的Vim编辑使用十分难受,虽然网上很多人说vim非常牛逼和强大,但是我更加习惯于使用VS code的界面, ...