Python 中 if __name__ == “__main__” 的作用

2023-09-0616:06:49编程语言入门到精通Comments1,527 views字数 746阅读模式

Python 解释器读取运行 Python 文件时,它首先会设置一些特殊的变量。然后执行文件中的代码。其中一个变量称为:__name__。它表示模块或脚本的名称。当脚本作为主程序执行时,其值设置为 __main__。如果将脚本作为模块导入,则变量的值将设置为模块的实际名称。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/55965.html

Python 中 if __name__ == “__main__” 的作用文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/55965.html

假设我们有以下两个文件:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/55965.html

# my1.py
print("我是my1.py")
# my2.py
if __name__ == "__main__":
    print("我是my2.py")

如果我们运行这两个文件,分别输出“我是my1.py”、“我是my2.py”。my2.py 作为脚本文件运行,if 语句条件成立,脚本运行有相应输出。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/55965.html

我们再编写两个文件:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/55965.html

# my3.py
import my1
print("我是my3.py")
# my4.py
import my2
print("我是my4.py")

分别将 my1.py、my2.py 作为模块导入。运行结果分别如下:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/55965.html

我是my1.py
我是my3.py
我是my4.py

在 my3.py 中,my1.py 作为模块导入,my3.py 运行时,my1.py 中的代码也被执行。输出两行文字。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/55965.html

在 my4.py 中,my2.py 作为模块导入,my4.py 运行时,my2.py 中的代码使用 if __name__ == "__main__" 进行判断,my2.py 不是作为主程序运行,而是作为模块使用,相应的输出没有被执行。输出一行文字。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/55965.html

简而言之,if __name__ == "__main__" 允许文件作为脚本运行时执行相应代码,但在作为模块导入时不执行相应代码。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/55965.html

我们了解了 if __name__ == "__main__" 在 Python 中的作用。如果要在脚本运行期间收集用户输入,最好使用它,并避免在导入模块时产生副作用。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/55965.html

  • 本站内容整理自互联网,仅提供信息存储空间服务,以方便学习之用。如对文章、图片、字体等版权有疑问,请在下方留言,管理员看到后,将第一时间进行处理。
  • 转载请务必保留本文链接:https://www.cainiaoxueyuan.com/ymba/55965.html

Comment

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定