zoukankan      html  css  js  c++  java
  • Python中关于if __name__=='__main__'的问题

    python中有内置变量,内置函数,内置模块。比如常用的abs()input()等等就是python中的内置函数。os模块、sys模块等等就是python的内置模块。而__name__是python中的内置变量,可以通过vars()查看python中所有的内置变量。

    对于很多编程语言来说,程序都必须要有一个入口,比如 C,C++,以及完全面向对象的编程语言 Java,C# 等。比如C 和 C++ 都需要有一个main函数来作为程序的入口,也就是程序的运行会从main函数开始。

    而 Python 则有不同,它属于脚本语言,不像编译型语言那样先将程序编译成二进制再运行,而是动态的逐行解释运行。也就是从脚本第一行开始运行,没有统一的入口。
    一个 Python 源码文件除了可以被直接运行外,还可以作为模块(也就是库)被导入。不管是导入还是直接运行,最顶层的代码都会被运行。而实际上在导入的时候,有一部分代码我们是不希望被运行的(比如测试代码)。
    此时我们就可以在每个python代码中将不希望被运行的代码用if(__name__=="__main__"):包起来,如果此模块是直接运行的,那么此模块的内置变量__name__就是"__main__",其他模块的__name__就是其包名字。

    简单理解就是:如果模块是被直接运行的,则代码块被运行,如果模块是被导入的,则代码块不被运行。

     

  • 相关阅读:
    Educational Codeforces Round 6
    Codeforces Round #373 (Div. 2)
    尺取法
    Codeforces Round #542 [Alex Lopashev Thanks-Round] (Div. 2)
    逆元(数论倒数)
    最大公约数gcd,最小公倍数lcm,扩展欧几里得
    hdu 6395 Sequence (分段矩阵快速幂)
    快速幂
    hdu 6432 Cyclic
    hdu 6397 charactor encoding
  • 原文地址:https://www.cnblogs.com/LMIx/p/8719224.html
Copyright © 2011-2022 走看看