Python __name__=='__main__'

当我们写的程序包含多个模块的时候,我们编写完某一个模块的代码后需要测试代码是否正确,这时可采用__name__检测
我们这里有两个模块practice1和practice2,practice1作为主模块其导入practice2中的程序。为了检测practice2中的函数编写是否正确而又不对主模块产生影响,可采用如下代码

practice2.py
def hello():
    print('hello')
def goodbye():
    print('goodbye')
if __name__=='__main__':
    goodbye()

运行结果:

goodbye

主模块:

practice1.py
import practice2 as pr
pr.hello()

运行结果

hello

到这里我们就可以发现主模块中并没有运行practice2中的

if __name__=='__main__':
    goodbye()

这是为什么呢?
答案很简单,我们在practice2.py中打印__main__的值

practice2.py
def hello():
    print('hello')
def goodbye():
    print('goodbye')
if __name__=='__main__':
    goodbye()
print(__main__)

运行结果:

goodbye
__main__

此时practice1.py的运行结果如下:

practice2
hello

看到这里是否就能很好理解了当practice2模块作为主程序执行时其__main__值为__main__,其不作为主程序执行时其__main__值为practice2

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值