正在回答
同学你好,如同学所说,不是所有的python文件都一定要写入口函数的,if __name__ == '__main__' 就相当于是 Python 模拟的程序入口。
__name__是模块的名称,当.py文件被直接运行时,if __name__ == '__main__'之后的代码块将被运行;当.py文件以模块形式被导入时,if _name_ == '__main__'之后的代码块不被运行。
例如:
1、我们有一个 test.py 文件,内容如下:
PI = 3.14
def main():
print("PI:", PI)
main()
# 程序运行结果 :PI: 3.14
2、我们还有一个 area.py 文件,用于计算圆的面积,该文件里边需要用到 test.py 文件中的 PI 变量,那么我们从 test.py 中把 PI 变量导入到 area.py 中
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 函数也被运行了,实际上我们是不希望它被运行。
3、这时,if __name__ == '__main__' 就派上了用场。把 test.py 改一下:
PI = 3.14
def main():
print("PI:", PI)
if __name__ == "__main__":
main()
# 程序运行结果 :PI: 3.14
然后再运行 area.py,输出如下:round area: 12.56
由于模块之间相互引用,不同模块可能都有这样的定义,而入口程序只能有一个。到底哪个入口程序被选中,这取决于 __name__ 的值。
加油,祝学习愉快~~~~
- 参与学习 人
- 提交作业 5228 份
- 解答问题 2433 个
Facebook曾声称“只招全栈工程师”!全栈用人需求猛增,市面人才紧缺。 0基础进击Python全栈开发,诱人薪资在前方!
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星