• Python


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

    示例:test.py

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

    直接执行:

    >python test.py
    test main is working

    import执行:

    >>> 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文件就可以调用其中的函数了。

  • 相关阅读:
    为什么很多程序员都选择跳槽?
    程序员牛人跳槽
    批处理学习教程
    linux操作命令
    apache配置访问限制
    不常见使用的css
    input中的内容改变时触发的事件
    order by 特殊排序技巧
    CSS设置input placeholder文本的样式
    GoodUI:页面布局的技巧和设计理念
  • 原文地址:https://www.cnblogs.com/anliven/p/6021954.html
Copyright © 2020-2023  润新知