zoukankan      html  css  js  c++  java
  • 关于__name__=='__main__'的理解

    一、总的来说,如果__name__=='__main__'成立,表示当前模块就是主程序,
    如果__name__=='__main__'不成立,表示当前模块是被导入到某个模块中的,而此时__name__的值是被导入的这个模块的模块名
    举例说明:
    PP.py
    #coding=utf-8
    class F1():
        print '0000'
        def add(self):
            print 'F1的add方法'
        def jian(self):
            print 'F1的jian方法'
    if  __name__=='PP':
        print 'PP被导入了'
    if __name__=='__main__':
       print '我是主程序,被执行'

    运行PP结果为:    此时PP是主程序,所以__name__的值是__main__,执行结果就如下:

    0000
    我是主程序,被执行

    pp2.py模块

    #coding=utf-8
    from PP import *    #一旦被导入,就开始执行
    class cat():
        def eat(self):
            pass
    print __name__

    pp2的运行结果:  运行结果的前俩句是PP被导入后就会立马执行,PP的执行结果。__main__这个结果是pp2的__name__值

    0000
    PP被导入了
    __main__

    所以,模块A是主程序时,A模块的__name__值是__main__,模块A被导入到别的模块B的话,在B里执行A时,A的__name__值是A的模块名称

    
    
  • 相关阅读:
    Ansible import_playbook 导入playbook
    Ansible Playbook 变量传递
    Ansible Notify与Handler组合
    Ansible Role
    Ansible infile模块
    Ansible When有条件的运行任务
    Ansible register捕获命令输出
    Ansible Command Shell Raw模块区别
    Ansible Facts
    Ansible Jinjia2模块
  • 原文地址:https://www.cnblogs.com/sunny0/p/7677813.html
Copyright © 2011-2022 走看看