zoukankan      html  css  js  c++  java
  • 终于明白if __name__ == '__main__':了

    其实很简单

    if __name__ == '__main__': 就是一个判断

    __name__是系统变量

    __name__有一个特性,在当前文件运行是__main__,调用文件就是调用文件的路径了 

    可以先                     print(__name__)

                                   运行当前文件

                                   结果为"__main__"

    但是当你用当前文件调用其他文件(模块)时,文件里面有print(__name__),就是文件路径了

    假如我cal文件代码如下

    def add(x, y):
        return x + y
    
    
    print(__name__)

    我在test文件调用cal文件

    解释一下imoprt会做什么

    1.会执行导入的文件的代码

    2.引用导入文件的变量

    import cal
    这里执行结果就是cal文件的路径了
    执行test文件,不是执行cal文件

    知道这个特性就很容易明白if __name__ == '__main__':是有什么用的了

    还不明白,我给你们解释一下:

    if __name__ == '__main__':在模块里面用于放测试代码,因为导入模块就会执行模块的代码,但是模块的测试代码我们是不需要执行的,我们只需要模块的功能,这是就要用到if __name__ == '__main__':

    当别人调用这个模块的时候if__name__就不等于"__main__"了

    __name__是模块的路径了,所以if__name__是不等于__main__的,不满足条件,不执行if __name__ == '__main__':下面的代码

    但是你去模块文件执行模块文件,__name__就是等于__main__了,满足条件.所以可以用于测试

  • 相关阅读:
    jQuery中jsonp的跨域处理,no access-control-allow-origin,unexpected token
    doT中嵌套for循环的使用
    c++ new带括号和不带括号
    python装饰器之使用情景分析
    Python中classmethod与staticmethod区别
    python作用域 scope
    duck type鸭子类型
    EAFP和LBYL 两种防御性编程风格
    c++重载、覆盖和隐藏
    c++ 名字粉碎(name mangling)
  • 原文地址:https://www.cnblogs.com/kelaiji/p/10864831.html
Copyright © 2011-2022 走看看