1、python中__name__是什么意思?

  很多python的初学者可能都会遇到一个问题:__name__是什么意思?

  在刚开始学习python的时候,我们总会看到这样一句代码:

if __name__ == "__main__":

  一开始我以为这句代码的意思和C语言中的main函数一样,程序从这里开始执行,但后来经过查询资料发现,两者并不完全相同,这里做一些解释:

    • __name__是一个变量,前后加了双下划线是因为这是系统定义的名字(python中系统变量都是双下划綫开头结尾),普通变量不使用这种命名方式;
    • python有很多模块,这些模块是可以独立运行的(这一点与C语言和C++的头文件不同);
    • __name__是用来标识模块名字的一个系统变量。这里分两种情况:第一种情况指的是当前运行的模块,那么当前模块__name__的值就为"__main__";第二种情况指的是该模块是使用import导入的模块,那么这个被导入模块的__name__变量的值为该模块的文件名(去掉.py)。

2、测试一下上面内容的正确性

  首先创建两个测试文件,代码如下

test_one.py:

def test_function():
print(__name__) def test1_function(name):
print(type(name), name)

test.py:

from test_one import *

test_function()
test1_function(__name__)

  运行test.py文件,得到下面的结果:

最新文章

  1. 细说进程五种状态的生老病死——双胞胎兄弟Java线程
  2. R语言—图像初阶
  3. SpringMVC自定义注入controller变量
  4. Mac Mysql mysql_secure_installation Error: Access denied for user 'root'@'localhost' (using password: YES)
  5. 实验楼实验——LINUX基础入门
  6. 【h5-egret】深入浅出对象池
  7. 【HDOJ】1508 Alphacode
  8. awk--动作(action)
  9. pd的django To Do List教程-----3:模板的建立
  10. override和new的区别
  11. onekey_fourLED
  12. unity3d 数学的数学基础和辅助类
  13. iOS开发-OC语言 (二)类的设计
  14. Unity UI 基础【译】
  15. 201521123011《Java程序设计》第6周学习总结
  16. springboot实现数据库中数据导出Excel功能
  17. Java笔记Spring(八)
  18. CC2541设置中断输入模式
  19. 吴裕雄 30-MySQL 及 SQL 注入
  20. JPA Annotation注解

热门文章

  1. ThinkPHP5 清除runtime缓存文件
  2. css 添加手状样式,鼠标移上去变小手
  3. 在Linux系统下有一个目录/usr/share/dict/ 这个目录里包含了一个词典的文本文件,我们可以利用这个文件来辨别单词是否为词典中的单词。
  4. Nginx internal 指令限制访问图片资源文件
  5. 【CPU】解决打开360或者Chrome浏览器CPU占用过高
  6. 线程、进程概念与Android系统组件的关系
  7. jsp隐含对象(内置对象)
  8. python编程基础之十四
  9. python编程基础之二
  10. UVA - 11795 Mega Man's Mission