Python爬虫日记-if __name__ == ‘__main__‘ 如何理解

一个 Python 源码文件除了可以被直接运行外,还可以作为模块(也就是库)被导入。不管是导入还是直接运行,所有的东西都会被运行,特别是执行部分。而实际上在导入的时候,python的执行部分我们是不希望被运行的。下面是一个例子:
假设我们有一个文件,名字为recognition.py 代码如下:

P = 3.14
def main():
    print "Pi is:", P
main()

Pi is: 3.14

这里py文件是没有上面的if name == ‘main’ ,那么当recognition.py被导入的时候,就会把main也一起执行,但有时候我们导入py文件,是不希望执行它的执行的。下面是个例子
我们创建一个 area.py

from recognition import P
def calc_round_area(radius):
    return P * (radius ** 2)
def main():
    print "round area: ", calc_round_area(2)
main()

Pi is: 3.14
round area: 12.56
所以导入recognition的文件时,连同它的执行部分也会执行。但其实我们是不希望这样子的,所以才会加上 if __ name__ == “__ main__”: 这个的意思只有文档直接被运行的时候,才会执行这个执行部分。如果只是被导入的时候,执行部分是不会被执行的。

P = 3.14
def main():
    print "Pi is:", PI
if __name__ == "__main__":
    main()

这时候运行area.py 部分的时候,导入recognition.py 却不会执行recognition.py的执行部分。
所以,总结的是 当python文件加上if __ name__ == "__ main__"的时候,被引用作为模块的时候,当如果模块是被直接运行的,则代码块被运行,如果模块是被导入的,则代码块不被运行。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

jianafeng

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值