if __name__ == '__main__':用法

看了csdn上很多讲解,虽然都很不错,但是我觉得一些细节需要补充一下(小白需要更白的讲解)
1.首先创建两个py文件,名字分别为test.py 和import_test.py,内容分别如下:

print ("I'm the first.")
print(__name__)
if __name__=="__main__":
    print ("I'm the second.")
import test

2.很多博客都有提__name__:

  • 在直接运行test.py的时候,name 等于 test.py
  • 在调用test.py的时候,name 等于 test
  • __main__是当前执行文件的名称(包含后缀py)
    下图是run test.py的结果,此时直接运行文件,main__和__name__都表示 test.py,此时__name == ‘main’,因此这句话下面的内容也会被执行,就有I’m the second被打印。


在运行import_test.py文件时,相当于import test,此时调用test.py 中的内容,结果如下,此时__name__表示test,和当前文件名称不一致,所以if name == ‘main’:以下的内容不会被打印。

3. 一点值得注意的东西
import_test.py文件中的内容是import test,当然也可以直接在console直接运行import test,结果都一样:

但是,只要被import一次,就不会再重复打印了(看别人的博文时,笔者在这个地方浪费了一些时间,重复的内容只能打印一次,除非文件内容发生了改变)
在这里插入图片描述


下面是import相关函数的做法

1.更改test.py 和import_test.py内容如下:

def may(a):
    return "123"
def may_t(a):
    return "456"
if __name__=="__main__":
    print ("I'm the second.")
from test import may
may(1)
may_t(2)

2.逐行运行import_test.py,结果如下,因为我们只加载了may函数

在这里插入图片描述
当然可以把from test import may换成from test import *,×表示加载test中所有函数,然后就有
在这里插入图片描述
在上述知识的基础上,理解博客圆的面积代码就比较简单了
const.py和area.py 的内容分别如下:

PI = 3.14
def main():
    print ("PI:", PI)
if __name__ == "__main__":
    main()
from const import PI
def calc_round_area(radius):
    return PI * (radius ** 2)
def main():
    print ("round area: ", calc_round_area(2) )
main()

area.py只调用了const.py中的PI 常数用以计算半径为2的圆面积,最后结果是12.56。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值