由于 Python 中没有 main() 函数,当运行 Python 程序的命令给解释器时,将执行 0 级缩进的代码。但是,在此之前,它会定义一些特殊变量。 __name__ 就是一个这样的特殊变量。如果源文件作为主程序执行,解释器将 __name__ 变量设置为 “__main__”。如果这个文件是从另一个模块导入的,__name__ 将被设置为模块的名称。
__name__ 是一个 内置 变量,其计算结果为当前模块的名称。因此,它可以用来检查当前脚本是在自己运行还是通过与 if 语句组合而被导入到其他地方,如下所示。
考虑两个单独的文件 File1 和 File2。
# File1.py
print ("File1 __name__ = %s" %__name__)
if __name__ == "__main__":
print ("File1 is being run directly")
else:
print ("File1 is being imported")
# File2.py
import File1
print ("File2 __name__ = %s" %__name__)
if __name__ == "__main__":
print ("File2 is being run directly")
else:
print ("File2 is being imported")
Now the interpreter is given the command to run File1.py. python File1.py Output: File1 __name__ = __main__ File1 is being run directly And then File2.py is run. python File2.py Output: File1 __name__ = File1 File1 is being imported File2 __name__ = __main__ File2 is being run directly
如上所示,当 File1.py 直接运行时,解释器将 __name__ 变量设置为 __main__,当通过导入运行 File2.py 时,将 __name__ 变量设置为 python 脚本的名称,即 File1。因此,可以说如果 __name__ == “__main__” 是使用 python File1.py 之类的命令从命令行运行脚本时运行的程序的一部分。
相关用法
- Python __file__用法及代码示例
- Python tensorflow.math.special.expint()用法及代码示例
- Python tensorflow.math.special.dawsn()用法及代码示例
- Python tensorflow.math.special.spence()用法及代码示例
- Python tensorflow.math.special.fresnel_sin()用法及代码示例
- Python tensorflow.math.special.fresnel_cos()用法及代码示例
注:本文由纯净天空筛选整理自GeeksforGeeks大神的英文原创作品 __name__ (A Special variable) in Python。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。