美文网首页初学者
Python属性简介"__name__"

Python属性简介"__name__"

作者: 我爱学python | 来源:发表于2020-04-20 20:31 被阅读0次

模块是对象,并且每个模块都有一个内置属性name
当一个模块被直接运行的时候,该模块name的值就等于缺省的'__ main__'。
如果一个模块被import ,那么这个被引入模块name的值就等于该模块名,也就是文件名去掉py扩展名的部分。
也就是说name的值表明了当前py文件调用的方式,因此可以用if __ name__ == '__ main__'来判断是否是在直接运行该.py文件。

示例:test.py

# -*- coding: utf-8 -*-
def sample():
    print "test is running"
if __name__ == "__main__":    # 自运行时调用该程序块
    print "test main is working"
if __name__ == "test":         # import时调用该程序块
    print "test is invoked"

直接执行:

>python test.py
test main is working

import执行:

'''
遇到问题没人解答?小编创建了一个Python学习交流QQ群:579817333 
寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
'''
>>> import test
test is invoked
>>>
>>> test.__name__
'test'
>>>
>>> dir()
['__builtins__', '__doc__', '__name__', '__package__', 'test']
>>>
>>> dir(test)
['__builtins__', '__doc__', '__file__', '__name__', '__package__', 'sample']
>>>
>>> __name__
'__main__'
>>>
>>> show = test
>>> show.sample()
test is running
>>>

__ name__属性可以应用在代码重用、测试模块、基类、等等方面
比如想利用一个py文件中的函数:
可以在此py文件中加上if __ name__ == "__ main__"这句代码,然后import这个py文件就可以调用其中的函数了。

相关文章

网友评论

    本文标题:Python属性简介"__name__"

    本文链接:https://www.haomeiwen.com/subject/laajihtx.html