zoukankan      html  css  js  c++  java
  • 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文件就可以调用其中的函数了。

  • 相关阅读:
    spring mvc 总结
    linux安装tomcat及优化
    mysql支持emoji表情
    面试问题
    linux安装jdk mysql
    webstorm 介绍
    spring 总结
    UML工具
    js bom dom
    awt多线程聊天
  • 原文地址:https://www.cnblogs.com/anliven/p/6021954.html
Copyright © 2011-2022 走看看