19.python if __name__==__main__

本文详细解析了Python中__name__变量的作用,当模块作为独立程序运行时,其值为'__main__',此时会执行if __name__ == '__main__'下的代码;而当模块被导入到其他程序时,__name__变量则为模块名,不会执行if语句下的代码。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

在解释之前首先我们看下__name__这个变量存的是什么:

#!/usr/bin/env python
# -*- coding:utf-8 -*- 
print(__name__)

运行结果:
__main__

结果分析:当我们运行的程序的时候,__name__这个内置变量值就是__main__。

 

 

 

导入模块时候__name__变量值:

test.py代码:

#!/usr/bin/env python
# -*- coding:utf-8 -*- 

print("this is before if __name__:%s"%__name__)
if __name__=='__main__':
    print("this is after if __name__:%s"%__name__)

 

导入test模块并执行:

#/usr/bin/env python
# -*- coding:utf-8 -*-
import test

结果:
this is before if __name__:test

可以看到,此时变量__name__值为模块名,并没有执行if中的语句,结果只有一条。

综上分析:

if __name__=='__main__'说白了就是判断__name__变量值是不是等于__main__,

当执行文件本身时候__name__变量等于main,此时判断成立并执行判断语句中的代码,

当调用该模块的时候__name__并不等于__main__条件不成立,不执行判断下面的预计,可以认为为了调试模块,在模块导入的时候并不执行if下面的语句。

调用模块时,__name__的值是test,  test不等于__main__,所以不执行 if后的代码

 

 

如果模块是被直接运行的,则代码块被运行,如果模块被import,则代码块不被运行。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值