美文网首页初学者
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