正在回答
1回答
同学,你好,当.py文件被直接运行时,if _name_ == '_main_'之下的代码块将被运行;当.py文件以模块形式被导入时,if _name_ == '_main_'之下的代码块不被运行。
例:我们有一个 test.py 文件,内容如下:
1 2 3 4 5 | PI = 3.14 def main(): print ( "PI:" , PI) main() # 程序运行结果 :PI: 3.14 |
现在,我们有一个 area.py 文件,用于计算圆的面积,该文件里边需要用到 test.py 文件中的 PI 变量,那么我们从 test.py 中把 PI 变量导入到 area.py 中:
1 2 3 4 5 6 7 8 9 10 11 | from test import PI def calc_round_area(radius): return PI * (radius * * 2 ) def main(): print ( "round area: " , calc_round_area( 2 )) main() """ PI: 3.14 round area: 12.56 """ |
可以看到,test中的 main 函数也被运行了,实际上我们是不希望它被运行,提供 main 也只是为了对常量定义进行下测试。这时,if __name__ == '__main__' 就派上了用场。把 test.py 改一下:
1 2 3 4 5 6 | PI = 3.14 def main(): print ( "PI:" , PI) if __name__ = = "__main__" : main() |
然后再运行 area.py,输出如下:round area: 12.56
if __name__ == '__main__' 就相当于是 Python 模拟的程序入口。由于模块之间相互引用,不同模块可能都有这样的定义,而入口程序只能有一个。到底哪个入口程序被选中,这取决于 __name__ 的值。
如果我的回答解决了您的疑惑,请采纳!祝学习愉快~~~~
1.Python零基础入门
- 参与学习 人
- 提交作业 2727 份
- 解答问题 8160 个
想要进入Python Web、爬虫、人工智能等高薪领域,你需要掌握本阶段的Python基础知识,课程安排带你高效学习轻松入门,学完你也能听得懂Python工程师的行业梗。
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧