前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Python的__name__变量

Python的__name__变量

作者头像
用户7886150
修改2020-11-26 18:14:28
2900
修改2020-11-26 18:14:28
举报
文章被收录于专栏:bit哲学院

参考链接: Python的__name __(特殊变量)

我们经常看到Python代码中包含这样的代码: 

if __name__ == '__main__':

    something...

 这条语句的作用主要用来区分文件是主动执行的,还是被调用执行的。

如果当前文件是主动执行的,__name__ 变量的值就是:__main__,如果是

被导入执行的,则是被导入的文件名,比如有文件:test.py,如果执行:python test.py,那么,test文件的__name__变量值就是:__main__,如果: 

import test

test.__name__

那么值就是:test。 

除了要知道这个以外,还要知道一点就是,代码中带有“定义”功能的代码,是不被执行的。也就是说,代码中的函数、类的定义代码不会被执行。只要调用函数的代码才会执行函数功能。所以,再来看下test.py文件代码: 

print 'abc'

def sayHello():    # 函数定义不被执行

    print 'hello'

print 'def'

if __name__ == '__main__':

    print 'this is main of module'

    sayHello()

 文件的执行顺序总是从文件头到文件尾的,我们来观察这个文件的执行情况:

 1)文件主动执行,输出结果: 

 abc

def

this is main of module   # if 语句部分,由于主动执行,变量__name__ 的值是 __main__,所以条件为真,执行该条件下的语句体

hello                    # if 语句部分

  2)导入执行,输出结果:

 abc

def由于是被导入执行的,所以变量 __name__ 的值是:test,不等于'__main__',故条件为假,不执行条件语句体。

嗯,大概就是这样,知道这些后,其实比较简单了。

本文系转载,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文系转载前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档